diff options
| -rw-r--r-- | api/current.txt | 14 | ||||
| -rw-r--r-- | api/system-current.txt | 14 | ||||
| -rw-r--r-- | api/test-current.txt | 14 | ||||
| -rw-r--r-- | core/java/android/provider/FontsContract.java | 5 | ||||
| -rw-r--r-- | core/java/android/widget/TextView.java | 8 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/provider/FontsContractTest.java | 17 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/text/VariationParserTest.java | 6 | ||||
| -rw-r--r-- | graphics/java/android/graphics/FontListParser.java | 7 | ||||
| -rw-r--r-- | graphics/java/android/graphics/Paint.java | 7 | ||||
| -rw-r--r-- | graphics/java/android/graphics/Typeface.java | 8 | ||||
| -rw-r--r-- | graphics/java/android/graphics/fonts/FontVariationAxis.java | 28 |
11 files changed, 47 insertions, 81 deletions
diff --git a/api/current.txt b/api/current.txt index 0586d3504856..19a403bfd2ce 100644 --- a/api/current.txt +++ b/api/current.txt @@ -13285,7 +13285,7 @@ package android.graphics { method public void setFilterBitmap(boolean); method public void setFlags(int); method public void setFontFeatureSettings(java.lang.String); - method public boolean setFontVariationSettings(java.lang.String) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; + method public boolean setFontVariationSettings(java.lang.String); method public void setHinting(int); method public void setLetterSpacing(float); method public void setLinearText(boolean); @@ -13812,7 +13812,7 @@ package android.graphics { ctor public Typeface.Builder(android.content.res.AssetManager, java.lang.String); method public android.graphics.Typeface build(); method public android.graphics.Typeface.Builder setFallback(java.lang.String); - method public android.graphics.Typeface.Builder setFontVariationSettings(java.lang.String) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; + method public android.graphics.Typeface.Builder setFontVariationSettings(java.lang.String); method public android.graphics.Typeface.Builder setFontVariationSettings(android.graphics.fonts.FontVariationAxis[]); method public android.graphics.Typeface.Builder setItalic(boolean); method public android.graphics.Typeface.Builder setTtcIndex(int); @@ -14396,17 +14396,13 @@ package android.graphics.drawable.shapes { package android.graphics.fonts { public final class FontVariationAxis { - ctor public FontVariationAxis(java.lang.String, float) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; - method public static android.graphics.fonts.FontVariationAxis[] fromFontVariationSettings(java.lang.String) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; + ctor public FontVariationAxis(java.lang.String, float); + method public static android.graphics.fonts.FontVariationAxis[] fromFontVariationSettings(java.lang.String); method public float getStyleValue(); method public java.lang.String getTag(); method public static java.lang.String toFontVariationSettings(android.graphics.fonts.FontVariationAxis[]); } - public static class FontVariationAxis.InvalidFormatException extends java.lang.Exception { - ctor public FontVariationAxis.InvalidFormatException(java.lang.String); - } - } package android.graphics.pdf { @@ -51418,7 +51414,7 @@ package android.widget { method public void setExtractedText(android.view.inputmethod.ExtractedText); method public void setFilters(android.text.InputFilter[]); method public void setFontFeatureSettings(java.lang.String); - method public boolean setFontVariationSettings(java.lang.String) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; + method public boolean setFontVariationSettings(java.lang.String); method protected boolean setFrame(int, int, int, int); method public void setFreezesText(boolean); method public void setGravity(int); diff --git a/api/system-current.txt b/api/system-current.txt index 792796bfc94e..1181abce0435 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -14064,7 +14064,7 @@ package android.graphics { method public void setFilterBitmap(boolean); method public void setFlags(int); method public void setFontFeatureSettings(java.lang.String); - method public boolean setFontVariationSettings(java.lang.String) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; + method public boolean setFontVariationSettings(java.lang.String); method public void setHinting(int); method public void setLetterSpacing(float); method public void setLinearText(boolean); @@ -14591,7 +14591,7 @@ package android.graphics { ctor public Typeface.Builder(android.content.res.AssetManager, java.lang.String); method public android.graphics.Typeface build(); method public android.graphics.Typeface.Builder setFallback(java.lang.String); - method public android.graphics.Typeface.Builder setFontVariationSettings(java.lang.String) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; + method public android.graphics.Typeface.Builder setFontVariationSettings(java.lang.String); method public android.graphics.Typeface.Builder setFontVariationSettings(android.graphics.fonts.FontVariationAxis[]); method public android.graphics.Typeface.Builder setItalic(boolean); method public android.graphics.Typeface.Builder setTtcIndex(int); @@ -15175,17 +15175,13 @@ package android.graphics.drawable.shapes { package android.graphics.fonts { public final class FontVariationAxis { - ctor public FontVariationAxis(java.lang.String, float) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; - method public static android.graphics.fonts.FontVariationAxis[] fromFontVariationSettings(java.lang.String) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; + ctor public FontVariationAxis(java.lang.String, float); + method public static android.graphics.fonts.FontVariationAxis[] fromFontVariationSettings(java.lang.String); method public float getStyleValue(); method public java.lang.String getTag(); method public static java.lang.String toFontVariationSettings(android.graphics.fonts.FontVariationAxis[]); } - public static class FontVariationAxis.InvalidFormatException extends java.lang.Exception { - ctor public FontVariationAxis.InvalidFormatException(java.lang.String); - } - } package android.graphics.pdf { @@ -55378,7 +55374,7 @@ package android.widget { method public void setExtractedText(android.view.inputmethod.ExtractedText); method public void setFilters(android.text.InputFilter[]); method public void setFontFeatureSettings(java.lang.String); - method public boolean setFontVariationSettings(java.lang.String) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; + method public boolean setFontVariationSettings(java.lang.String); method protected boolean setFrame(int, int, int, int); method public void setFreezesText(boolean); method public void setGravity(int); diff --git a/api/test-current.txt b/api/test-current.txt index 65e3dc21f2ff..a5f5c8fe280e 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -13327,7 +13327,7 @@ package android.graphics { method public void setFilterBitmap(boolean); method public void setFlags(int); method public void setFontFeatureSettings(java.lang.String); - method public boolean setFontVariationSettings(java.lang.String) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; + method public boolean setFontVariationSettings(java.lang.String); method public void setHinting(int); method public void setLetterSpacing(float); method public void setLinearText(boolean); @@ -13854,7 +13854,7 @@ package android.graphics { ctor public Typeface.Builder(android.content.res.AssetManager, java.lang.String); method public android.graphics.Typeface build(); method public android.graphics.Typeface.Builder setFallback(java.lang.String); - method public android.graphics.Typeface.Builder setFontVariationSettings(java.lang.String) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; + method public android.graphics.Typeface.Builder setFontVariationSettings(java.lang.String); method public android.graphics.Typeface.Builder setFontVariationSettings(android.graphics.fonts.FontVariationAxis[]); method public android.graphics.Typeface.Builder setItalic(boolean); method public android.graphics.Typeface.Builder setTtcIndex(int); @@ -14442,17 +14442,13 @@ package android.graphics.drawable.shapes { package android.graphics.fonts { public final class FontVariationAxis { - ctor public FontVariationAxis(java.lang.String, float) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; - method public static android.graphics.fonts.FontVariationAxis[] fromFontVariationSettings(java.lang.String) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; + ctor public FontVariationAxis(java.lang.String, float); + method public static android.graphics.fonts.FontVariationAxis[] fromFontVariationSettings(java.lang.String); method public float getStyleValue(); method public java.lang.String getTag(); method public static java.lang.String toFontVariationSettings(android.graphics.fonts.FontVariationAxis[]); } - public static class FontVariationAxis.InvalidFormatException extends java.lang.Exception { - ctor public FontVariationAxis.InvalidFormatException(java.lang.String); - } - } package android.graphics.pdf { @@ -51804,7 +51800,7 @@ package android.widget { method public void setExtractedText(android.view.inputmethod.ExtractedText); method public void setFilters(android.text.InputFilter[]); method public void setFontFeatureSettings(java.lang.String); - method public boolean setFontVariationSettings(java.lang.String) throws android.graphics.fonts.FontVariationAxis.InvalidFormatException; + method public boolean setFontVariationSettings(java.lang.String); method protected boolean setFrame(int, int, int, int); method public void setFreezesText(boolean); method public void setGravity(int); diff --git a/core/java/android/provider/FontsContract.java b/core/java/android/provider/FontsContract.java index 1013b0f0af23..f90911421e10 100644 --- a/core/java/android/provider/FontsContract.java +++ b/core/java/android/provider/FontsContract.java @@ -15,7 +15,6 @@ */ package android.provider; -import static android.graphics.fonts.FontVariationAxis.InvalidFormatException; import static java.lang.annotation.RetentionPolicy.SOURCE; import android.annotation.IntDef; @@ -601,7 +600,7 @@ public class FontsContract { FontInfo[] fonts = getFontFromProvider( context, request, providerInfo.authority, cancellationSignal); return new FontFamilyResult(FontFamilyResult.STATUS_OK, fonts); - } catch (InvalidFormatException e) { + } catch (IllegalArgumentException e) { return new FontFamilyResult(FontFamilyResult.STATUS_UNEXPECTED_DATA_PROVIDED, null); } } @@ -755,7 +754,7 @@ public class FontsContract { @VisibleForTesting public static @NonNull FontInfo[] getFontFromProvider( Context context, FontRequest request, String authority, - CancellationSignal cancellationSignal) throws InvalidFormatException { + CancellationSignal cancellationSignal) { ArrayList<FontInfo> result = new ArrayList<>(); final Uri uri = new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT) .authority(authority) diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 492010c414fa..eee70e047dfd 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -56,7 +56,6 @@ import android.graphics.RectF; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.graphics.fonts.FontVariationAxis; -import android.graphics.fonts.FontVariationAxis.InvalidFormatException; import android.icu.text.DecimalFormatSymbols; import android.os.AsyncTask; import android.os.Build.VERSION_CODES; @@ -3925,14 +3924,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * TextView. This function also returns true for empty settings string. Otherwise * returns false. * - * @throws InvalidFormatException If given string is not a valid font variation settings - * format. + * @throws IllegalArgumentException If given string is not a valid font variation settings + * format. * * @see #getFontVariationSettings() * @see FontVariationAxis */ - public boolean setFontVariationSettings(@Nullable String fontVariationSettings) - throws InvalidFormatException { + public boolean setFontVariationSettings(@Nullable String fontVariationSettings) { final String existingSettings = mTextPaint.getFontVariationSettings(); if (fontVariationSettings == existingSettings || (fontVariationSettings != null diff --git a/core/tests/coretests/src/android/provider/FontsContractTest.java b/core/tests/coretests/src/android/provider/FontsContractTest.java index 56bfbb0a646f..d42d79e8fd82 100644 --- a/core/tests/coretests/src/android/provider/FontsContractTest.java +++ b/core/tests/coretests/src/android/provider/FontsContractTest.java @@ -32,7 +32,6 @@ import android.content.pm.PackageManager; import android.content.pm.ProviderInfo; import android.content.pm.Signature; import android.database.MatrixCursor; -import android.graphics.fonts.FontVariationAxis.InvalidFormatException; import android.graphics.fonts.FontVariationAxis; import android.provider.FontsContract.FontInfo; import android.support.test.filters.SmallTest; @@ -73,7 +72,7 @@ public class FontsContractTest extends ProviderTestCase2<TestFontsProvider> { mPackageManager = mock(PackageManager.class); } - public void testGetFontFromProvider_resultOK() throws InvalidFormatException { + public void testGetFontFromProvider_resultOK() { FontInfo[] fonts = FontsContract.getFontFromProvider( getMockContext(), request, TestFontsProvider.AUTHORITY, null); assertNotNull(fonts); @@ -90,8 +89,7 @@ public class FontsContractTest extends ProviderTestCase2<TestFontsProvider> { assertEquals(RESULT_CODE_OK, font.getResultCode()); } - public void testGetFontFromProvider_providerDoesntReturnAllFields() - throws InvalidFormatException { + public void testGetFontFromProvider_providerDoesntReturnAllFields() { mProvider.setReturnAllFields(false); FontInfo[] fonts = FontsContract.getFontFromProvider( @@ -107,7 +105,7 @@ public class FontsContractTest extends ProviderTestCase2<TestFontsProvider> { assertEquals(RESULT_CODE_OK, font.getResultCode()); } - public void testGetFontFromProvider_resultFontNotFound() throws InvalidFormatException { + public void testGetFontFromProvider_resultFontNotFound() { // Make the provider return unknown mProvider.setResultCode(RESULT_CODE_FONT_NOT_FOUND); FontInfo[] fonts = FontsContract.getFontFromProvider( @@ -120,7 +118,7 @@ public class FontsContractTest extends ProviderTestCase2<TestFontsProvider> { assertEquals(RESULT_CODE_FONT_NOT_FOUND, font.getResultCode()); } - public void testGetFontFromProvider_resultFontUnavailable() throws InvalidFormatException { + public void testGetFontFromProvider_resultFontUnavailable() { // Make the provider return font unavailable mProvider.setResultCode(RESULT_CODE_FONT_UNAVAILABLE); FontInfo[] fonts = FontsContract.getFontFromProvider( @@ -140,7 +138,7 @@ public class FontsContractTest extends ProviderTestCase2<TestFontsProvider> { assertEquals(RESULT_CODE_FONT_UNAVAILABLE, font.getResultCode()); } - public void testGetFontFromProvider_resultMalformedQuery() throws InvalidFormatException { + public void testGetFontFromProvider_resultMalformedQuery() { // Make the provider return font unavailable mProvider.setResultCode(RESULT_CODE_MALFORMED_QUERY); FontInfo[] fonts = FontsContract.getFontFromProvider( @@ -160,8 +158,7 @@ public class FontsContractTest extends ProviderTestCase2<TestFontsProvider> { assertEquals(RESULT_CODE_MALFORMED_QUERY, font.getResultCode()); } - public void testGetFontFromProvider_resultFontNotFoundSecondRow() - throws InvalidFormatException { + public void testGetFontFromProvider_resultFontNotFoundSecondRow() { MatrixCursor cursor = new MatrixCursor(new String[] { FontsContract.Columns._ID, FontsContract.Columns.TTC_INDEX, FontsContract.Columns.VARIATION_SETTINGS, FontsContract.Columns.WEIGHT, FontsContract.Columns.ITALIC, @@ -193,7 +190,7 @@ public class FontsContractTest extends ProviderTestCase2<TestFontsProvider> { assertEquals(RESULT_CODE_FONT_NOT_FOUND, font.getResultCode()); } - public void testGetFontFromProvider_resultFontNotFoundOtherRow() throws InvalidFormatException { + public void testGetFontFromProvider_resultFontNotFoundOtherRow() { MatrixCursor cursor = new MatrixCursor(new String[] { FontsContract.Columns._ID, FontsContract.Columns.TTC_INDEX, FontsContract.Columns.VARIATION_SETTINGS, FontsContract.Columns.WEIGHT, FontsContract.Columns.ITALIC, diff --git a/core/tests/coretests/src/android/text/VariationParserTest.java b/core/tests/coretests/src/android/text/VariationParserTest.java index bcc47e1fc201..b0f55d6da0e3 100644 --- a/core/tests/coretests/src/android/text/VariationParserTest.java +++ b/core/tests/coretests/src/android/text/VariationParserTest.java @@ -33,7 +33,7 @@ public class VariationParserTest extends TestCase { try { FontVariationAxis.fromFontVariationSettings("'wdth' " + invalidStyle); fail(); - } catch (FontVariationAxis.InvalidFormatException e) { + } catch (IllegalArgumentException e) { // pass } } @@ -41,14 +41,14 @@ public class VariationParserTest extends TestCase { try { FontVariationAxis.fromFontVariationSettings("'wght' 1, 'wdth' " + invalidStyle); fail(); - } catch (FontVariationAxis.InvalidFormatException e) { + } catch (IllegalArgumentException e) { // pass } } } @SmallTest - public void testOpenTypeTagValue() throws FontVariationAxis.InvalidFormatException { + public void testOpenTypeTagValue() { assertEquals(0x77647468, (new FontVariationAxis("wdth", 0).getOpenTypeTagValue())); assertEquals(0x41582020, (new FontVariationAxis("AX ", 0).getOpenTypeTagValue())); assertEquals(0x20202020, (new FontVariationAxis(" ", 0).getOpenTypeTagValue())); diff --git a/graphics/java/android/graphics/FontListParser.java b/graphics/java/android/graphics/FontListParser.java index 1a4f225c6267..7c07a302dfe9 100644 --- a/graphics/java/android/graphics/FontListParser.java +++ b/graphics/java/android/graphics/FontListParser.java @@ -134,12 +134,7 @@ public class FontListParser { String tagStr = parser.getAttributeValue(null, "tag"); String styleValueStr = parser.getAttributeValue(null, "stylevalue"); skip(parser); // axis tag is empty, ignore any contents and consume end tag - try { - return new FontVariationAxis(tagStr, Float.parseFloat(styleValueStr)); - } catch (FontVariationAxis.InvalidFormatException e) { - // Treat as system failure since system preinstalled font setting has invalid format. - throw new RuntimeException(e); - } + return new FontVariationAxis(tagStr, Float.parseFloat(styleValueStr)); } private static FontConfig.Alias readAlias(XmlPullParser parser) diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java index 81bd6adbb9d5..e62df8ff4742 100644 --- a/graphics/java/android/graphics/Paint.java +++ b/graphics/java/android/graphics/Paint.java @@ -21,7 +21,6 @@ import android.annotation.NonNull; import android.annotation.Size; import android.graphics.FontListParser; import android.graphics.fonts.FontVariationAxis; -import android.graphics.fonts.FontVariationAxis.InvalidFormatException; import android.os.LocaleList; import android.text.FontConfig; import android.text.GraphicsOperations; @@ -1575,13 +1574,13 @@ public class Paint { * typeface. This function also returns true for empty settings string. Otherwise * returns false * - * @throws InvalidFormatException If given string is not a valid font variation settings format. + * @throws IllegalArgumentException If given string is not a valid font variation settings + * format * * @see #getFontVariationSettings() * @see FontVariationAxis */ - public boolean setFontVariationSettings(String fontVariationSettings) - throws InvalidFormatException { + public boolean setFontVariationSettings(String fontVariationSettings) { final String settings = TextUtils.nullIfEmpty(fontVariationSettings); if (settings == mFontVariationSettings || (settings != null && settings.equals(mFontVariationSettings))) { diff --git a/graphics/java/android/graphics/Typeface.java b/graphics/java/android/graphics/Typeface.java index ba62a08b6fcd..ad6ea2bdb284 100644 --- a/graphics/java/android/graphics/Typeface.java +++ b/graphics/java/android/graphics/Typeface.java @@ -30,7 +30,6 @@ import android.annotation.Nullable; import android.content.res.AssetManager; import android.graphics.FontListParser; import android.graphics.fonts.FontVariationAxis; -import android.graphics.fonts.FontVariationAxis.InvalidFormatException; import android.net.Uri; import android.os.Bundle; import android.os.Handler; @@ -432,11 +431,10 @@ public class Typeface { * Sets a font variation settings. * * @param variationSettings See {@link android.widget.TextView#setFontVariationSettings}. - * @throws InvalidFormatException If given string is not a valid font variation settings - * format. + * @throws IllegalArgumentException If given string is not a valid font variation settings + * format. */ - public Builder setFontVariationSettings(@Nullable String variationSettings) - throws InvalidFormatException { + public Builder setFontVariationSettings(@Nullable String variationSettings) { if (mFonts != null) { throw new IllegalArgumentException( "Font variation settings can not be specified for FontResult source."); diff --git a/graphics/java/android/graphics/fonts/FontVariationAxis.java b/graphics/java/android/graphics/fonts/FontVariationAxis.java index fb2a3a873394..99564fab94cd 100644 --- a/graphics/java/android/graphics/fonts/FontVariationAxis.java +++ b/graphics/java/android/graphics/fonts/FontVariationAxis.java @@ -37,12 +37,11 @@ public final class FontVariationAxis { * The axis tag must contain four ASCII characters. Tag string that are longer or shorter than * four characters, or contains characters outside of U+0020..U+007E are invalid. * - * @throws {@link InvalidFormatException} If given tag string is invalid. + * @throws IllegalArgumentException If given tag string is invalid. */ - public FontVariationAxis(@NonNull String tagString, float styleValue) - throws InvalidFormatException { + public FontVariationAxis(@NonNull String tagString, float styleValue) { if (!isValidTag(tagString)) { - throw new InvalidFormatException("Invalid tag pattern: " + tagString); + throw new IllegalArgumentException("Illegal tag pattern: " + tagString); } mTag = makeTag(tagString); mTagString = tagString; @@ -113,15 +112,6 @@ public final class FontVariationAxis { } /** - * An exception indicates that the format of font variation settings is invalid. - */ - public static class InvalidFormatException extends Exception { - public InvalidFormatException(String message) { - super(message); - } - }; - - /** * Construct FontVariationAxis array from font variation settings. * * The settings string is constructed from multiple pairs of axis tag and style values. The axis @@ -138,10 +128,11 @@ public final class FontVariationAxis { * @param settings font variation settings. * @return FontVariationAxis[] the array of parsed font variation axis. {@code null} if settings * has no font variation settings. - * @throws InvalidFormatException If given string is not a valid font variation settings format. + * @throws IllegalArgumentException If given string is not a valid font variation settings + * format. */ - public static @Nullable FontVariationAxis[] fromFontVariationSettings(@Nullable String settings) - throws InvalidFormatException { + public static @Nullable FontVariationAxis[] fromFontVariationSettings( + @Nullable String settings) { if (settings == null || settings.isEmpty()) { return null; } @@ -153,7 +144,7 @@ public final class FontVariationAxis { continue; } if (!(c == '\'' || c == '"') || length < i + 6 || settings.charAt(i + 5) != c) { - throw new InvalidFormatException( + throw new IllegalArgumentException( "Tag should be wrapped with double or single quote: " + settings); } final String tagString = settings.substring(i + 1, i + 5); @@ -168,7 +159,8 @@ public final class FontVariationAxis { // Float.parseFloat ignores leading/trailing whitespaces. value = Float.parseFloat(settings.substring(i, endOfValueString)); } catch (NumberFormatException e) { - throw new InvalidFormatException("Failed to parse float string: " + e.getMessage()); + throw new IllegalArgumentException( + "Failed to parse float string: " + e.getMessage()); } axisList.add(new FontVariationAxis(tagString, value)); i = endOfValueString; |