From 1ffaac83dbfca57d197ce849742a72c2c6e09fdc Mon Sep 17 00:00:00 2001 From: Niklas Baudy Date: Mon, 5 Aug 2024 22:48:12 +0200 Subject: [PATCH] LottieCompositionFactory: Avoid NPE when animation contains a Font Family and Context is null. (#2530) --- .../java/com/airbnb/lottie/LottieCompositionFactory.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java b/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java index 5ee947988d..d90ab0a919 100644 --- a/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java +++ b/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java @@ -553,7 +553,7 @@ public static LottieResult fromZipStreamSync(@Nullable Contex } @WorkerThread - private static LottieResult fromZipStreamSyncInternal(Context context, ZipInputStream inputStream, @Nullable String cacheKey) { + private static LottieResult fromZipStreamSyncInternal(@Nullable Context context, ZipInputStream inputStream, @Nullable String cacheKey) { LottieComposition composition = null; Map images = new HashMap<>(); Map fonts = new HashMap<>(); @@ -581,6 +581,11 @@ private static LottieResult fromZipStreamSyncInternal(Context String[] splitName = entryName.split("/"); String fileName = splitName[splitName.length - 1]; String fontFamily = fileName.split("\\.")[0]; + + if (context == null) { + return new LottieResult<>(new IllegalStateException("Unable to extract font " + fontFamily + " please pass a non-null Context parameter")); + } + File tempFile = new File(context.getCacheDir(), fileName); try (FileOutputStream fos = new FileOutputStream(tempFile)) { try (OutputStream output = new FileOutputStream(tempFile)) {