blob: 1cdcce73acf046e47d2a78f30c838716228ec28c [file] [log] [blame]
package com.airbnb.lottie.model;
import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.annotation.VisibleForTesting;
import androidx.collection.LruCache;
import com.airbnb.lottie.LottieComposition;
@RestrictTo(RestrictTo.Scope.LIBRARY)
public class LottieCompositionCache {
private static final LottieCompositionCache INSTANCE = new LottieCompositionCache();
public static LottieCompositionCache getInstance() {
return INSTANCE;
}
private final LruCache<String, LottieComposition> cache = new LruCache<>(20);
@VisibleForTesting
LottieCompositionCache() {
}
@Nullable
public LottieComposition get(@Nullable String cacheKey) {
if (cacheKey == null) {
return null;
}
return cache.get(cacheKey);
}
public void put(@Nullable String cacheKey, LottieComposition composition) {
if (cacheKey == null) {
return;
}
cache.put(cacheKey, composition);
}
public void clear() {
cache.evictAll();
}
/**
* Set the maximum number of compositions to keep cached in memory.
* This must be > 0.
*/
public void resize(int size) {
cache.resize(size);
}
}