summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--graphics/java/android/graphics/Typeface.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/graphics/java/android/graphics/Typeface.java b/graphics/java/android/graphics/Typeface.java
index 25f6775f81b4..cb1f69c0ada3 100644
--- a/graphics/java/android/graphics/Typeface.java
+++ b/graphics/java/android/graphics/Typeface.java
@@ -33,6 +33,7 @@ import android.graphics.fonts.FontStyle;
import android.graphics.fonts.FontVariationAxis;
import android.graphics.fonts.SystemFonts;
import android.os.Build;
+import android.os.Build.VERSION_CODES;
import android.provider.FontRequest;
import android.provider.FontsContract;
import android.text.FontConfig;
@@ -46,6 +47,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.Preconditions;
import dalvik.annotation.optimization.CriticalNative;
+import dalvik.system.VMRuntime;
import libcore.util.NativeAllocationRegistry;
@@ -243,7 +245,16 @@ public class Typeface {
if (familyBuilder == null) {
familyBuilder = new FontFamily.Builder(fontBuilder.build());
} else {
- familyBuilder.addFont(fontBuilder.build());
+ try {
+ familyBuilder.addFont(fontBuilder.build());
+ } catch (IllegalArgumentException e) {
+ if (VMRuntime.getRuntime().getTargetSdkVersion() <= VERSION_CODES.P) {
+ // Surpress the IllegalArgumentException for keeping the backward
+ // compatibility.
+ continue;
+ }
+ throw e;
+ }
}
}
if (familyBuilder == null) {