Merge remote-tracking branch 'origin/master' into gpeal/layer-type
diff --git a/CHANGELOG.md b/CHANGELOG.md index b097d3e..46c2e6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md
@@ -1,3 +1,9 @@ +# 4.2.2 +### Bugs Fixed +* Removed allocations when setting paint alpha prior to API 29 ([#1929](https://github.com/airbnb/lottie-android/pull/1929)) +* Added application/x-zip and application/x-zip-compressed as recognized zip mime types ([#1950](https://github.com/airbnb/lottie-android/pull/1950)) +* Fixed a rare NPE in TransformKeyframeAnimation ([#1955](https://github.com/airbnb/lottie-android/pull/1955)) + # 4.2.1 ### Features and Improvements * Upgraded to Compose 1.0.3 ([#1913](https://github.com/airbnb/lottie-android/pull/1913))
diff --git a/lottie/src/main/java/com/airbnb/lottie/animation/keyframe/TransformKeyframeAnimation.java b/lottie/src/main/java/com/airbnb/lottie/animation/keyframe/TransformKeyframeAnimation.java index 5453d7b..fcab96c 100644 --- a/lottie/src/main/java/com/airbnb/lottie/animation/keyframe/TransformKeyframeAnimation.java +++ b/lottie/src/main/java/com/airbnb/lottie/animation/keyframe/TransformKeyframeAnimation.java
@@ -169,7 +169,7 @@ BaseKeyframeAnimation<?, PointF> position = this.position; if (position != null) { PointF positionValue = position.getValue(); - if (positionValue.x != 0 || positionValue.y != 0) { + if (positionValue != null && (positionValue.x != 0 || positionValue.y != 0)) { matrix.preTranslate(positionValue.x, positionValue.y); } }
diff --git a/lottie/src/main/java/com/airbnb/lottie/network/NetworkFetcher.java b/lottie/src/main/java/com/airbnb/lottie/network/NetworkFetcher.java index 180260c..c9ae261 100644 --- a/lottie/src/main/java/com/airbnb/lottie/network/NetworkFetcher.java +++ b/lottie/src/main/java/com/airbnb/lottie/network/NetworkFetcher.java
@@ -107,7 +107,10 @@ // in the result which is more useful than failing here. contentType = "application/json"; } - if (contentType.contains("application/zip") || url.split("\\?")[0].endsWith(".lottie")) { + if (contentType.contains("application/zip") || + contentType.contains("application/x-zip") || + contentType.contains("application/x-zip-compressed") || + url.split("\\?")[0].endsWith(".lottie")) { Logger.debug("Handling zip response."); extension = FileExtension.ZIP; result = fromZipStream(url, inputStream, cacheKey);