Prevent zip streams from getting closed
diff --git a/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java b/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java
index 553660b..265d697 100644
--- a/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java
+++ b/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java
@@ -230,6 +230,11 @@
    */
   @WorkerThread
   public static LottieResult<LottieComposition> fromJsonReaderSync(JsonReader reader, @Nullable String cacheKey) {
+    return fromJsonReaderSyncInternal(reader, cacheKey, true);
+  }
+
+  private static LottieResult<LottieComposition> fromJsonReaderSyncInternal(
+          JsonReader reader, @Nullable String cacheKey, boolean close) {
     try {
       LottieComposition composition = LottieCompositionParser.parse(reader);
       LottieCompositionCache.getInstance().put(cacheKey, composition);
@@ -237,7 +242,9 @@
     } catch (Exception e) {
       return new LottieResult<>(e);
     } finally {
-      closeQuietly(reader);
+      if (close) {
+        closeQuietly(reader);
+      }
     }
   }
 
@@ -274,7 +281,8 @@
         if (entry.getName().contains("__MACOSX")) {
           inputStream.closeEntry();
         } else if (entry.getName().contains(".json")) {
-          composition = LottieCompositionFactory.fromJsonInputStreamSync(inputStream, cacheKey, false).getValue();
+          JsonReader reader = new JsonReader(new InputStreamReader(inputStream));
+          composition = LottieCompositionFactory.fromJsonReaderSyncInternal(reader, null, false).getValue();
         } else if (entry.getName().contains(".png")) {
           String[] splitName = entry.getName().split("/");
           String name = splitName[splitName.length - 1];