From 8d0ea7d98bbd8a83d81ffed1d4f5febb9009cac4 Mon Sep 17 00:00:00 2001 From: Gabriel Peal Date: Mon, 22 Mar 2021 09:55:11 -0700 Subject: [PATCH] Add support for jpgs in zip files (#1769) Fixes #1767 --- .../airbnb/lottie/LottieCompositionFactory.java | 2 +- sample/src/main/assets/Tests/anim_jpg.zip | Bin 0 -> 18438 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 sample/src/main/assets/Tests/anim_jpg.zip diff --git a/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java b/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java index c2ee26f9b5..b1612b9050 100644 --- a/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java +++ b/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java @@ -441,7 +441,7 @@ private static LottieResult fromZipStreamSyncInternal(ZipInpu } else if (entry.getName().contains(".json")) { com.airbnb.lottie.parser.moshi.JsonReader reader = JsonReader.of(buffer(source(inputStream))); composition = LottieCompositionFactory.fromJsonReaderSyncInternal(reader, null, false).getValue(); - } else if (entryName.contains(".png") || entryName.contains(".webp")) { + } else if (entryName.contains(".png") || entryName.contains(".webp") || entryName.contains(".jpg") || entryName.contains(".jpeg")) { String[] splitName = entryName.split("/"); String name = splitName[splitName.length - 1]; images.put(name, BitmapFactory.decodeStream(inputStream)); diff --git a/sample/src/main/assets/Tests/anim_jpg.zip b/sample/src/main/assets/Tests/anim_jpg.zip new file mode 100644 index 0000000000000000000000000000000000000000..941637c4bdd70c691572dc20b4db589ceb3eed75 GIT binary patch literal 18438 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 ZV74JTV+44!vVpWR10feMbe_3^cmT)EsdWGV literal 0 HcmV?d00001