Cache compositions loaded by url in memory
diff --git a/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java b/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java
index f4a1a6a..0c686f7 100644
--- a/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java
+++ b/lottie/src/main/java/com/airbnb/lottie/LottieCompositionFactory.java
@@ -86,7 +86,11 @@
return cache(cacheKey, new Callable<LottieResult<LottieComposition>>() {
@Override
public LottieResult<LottieComposition> call() {
- return L.networkFetcher(context).fetchSync(url, cacheKey);
+ LottieResult<LottieComposition> result = L.networkFetcher(context).fetchSync(url, cacheKey);
+ if (cacheKey != null && result.getValue() != null) {
+ LottieCompositionCache.getInstance().put(cacheKey, result.getValue());
+ }
+ return result;
}
});
}
@@ -109,7 +113,11 @@
*/
@WorkerThread
public static LottieResult<LottieComposition> fromUrlSync(Context context, String url, @Nullable String cacheKey) {
- return L.networkFetcher(context).fetchSync(url, cacheKey);
+ LottieResult<LottieComposition> result = L.networkFetcher(context).fetchSync(url, cacheKey);
+ if (cacheKey != null && result.getValue() != null) {
+ LottieCompositionCache.getInstance().put(cacheKey, result.getValue());
+ }
+ return result;
}
/**