CrackMe.apk
Download file
package com.facebook.imagepipeline.producers;
import com.facebook.cache.common.CacheKey;
import com.facebook.common.memory.PooledByteBuffer;
import com.facebook.common.references.CloseableReference;
import com.facebook.imagepipeline.cache.BoundedLinkedHashSet;
import com.facebook.imagepipeline.cache.BufferedDiskCache;
import com.facebook.imagepipeline.cache.CacheKeyFactory;
import com.facebook.imagepipeline.cache.MemoryCache;
import com.facebook.imagepipeline.image.CloseableImage;
import com.facebook.imagepipeline.request.ImageRequest;
import com.facebook.imagepipeline.systrace.FrescoSystrace;
import java.util.Map;
import javax.annotation.Nullable;
public class BitmapProbeProducer implements Producer<CloseableReference<CloseableImage>> {
public static final String PRODUCER_NAME = "BitmapProbeProducer";
private final CacheKeyFactory mCacheKeyFactory;
private final BufferedDiskCache mDefaultBufferedDiskCache;
private final BoundedLinkedHashSet<CacheKey> mDiskCacheHistory;
private final MemoryCache<CacheKey, PooledByteBuffer> mEncodedMemoryCache;
private final BoundedLinkedHashSet<CacheKey> mEncodedMemoryCacheHistory;
private final Producer<CloseableReference<CloseableImage>> mInputProducer;
private final BufferedDiskCache mSmallImageBufferedDiskCache;
/* access modifiers changed from: protected */
public String getProducerName() {
return PRODUCER_NAME;
}
public BitmapProbeProducer(MemoryCache<CacheKey, PooledByteBuffer> memoryCache, BufferedDiskCache bufferedDiskCache, BufferedDiskCache bufferedDiskCache2, CacheKeyFactory cacheKeyFactory, BoundedLinkedHashSet<CacheKey> boundedLinkedHashSet, BoundedLinkedHashSet<CacheKey> boundedLinkedHashSet2, Producer<CloseableReference<CloseableImage>> producer) {
this.mEncodedMemoryCache = memoryCache;
this.mDefaultBufferedDiskCache = bufferedDiskCache;
this.mSmallImageBufferedDiskCache = bufferedDiskCache2;
this.mCacheKeyFactory = cacheKeyFactory;
this.mEncodedMemoryCacheHistory = boundedLinkedHashSet;
this.mDiskCacheHistory = boundedLinkedHashSet2;
this.mInputProducer = producer;
}
public void produceResults(Consumer<CloseableReference<CloseableImage>> consumer, ProducerContext producerContext) {
try {
if (FrescoSystrace.isTracing()) {
FrescoSystrace.beginSection("BitmapProbeProducer#produceResults");
}
ProducerListener2 producerListener = producerContext.getProducerListener();
producerListener.onProducerStart(producerContext, getProducerName());
ProbeConsumer probeConsumer = new ProbeConsumer(consumer, producerContext, this.mEncodedMemoryCache, this.mDefaultBufferedDiskCache, this.mSmallImageBufferedDiskCache, this.mCacheKeyFactory, this.mEncodedMemoryCacheHistory, this.mDiskCacheHistory);
producerListener.onProducerFinishWithSuccess(producerContext, PRODUCER_NAME, (Map<String, String>) null);
if (FrescoSystrace.isTracing()) {
FrescoSystrace.beginSection("mInputProducer.produceResult");
}
this.mInputProducer.produceResults(probeConsumer, producerContext);
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
}
} finally {
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
}
}
}
private static class ProbeConsumer extends DelegatingConsumer<CloseableReference<CloseableImage>, CloseableReference<CloseableImage>> {
private final CacheKeyFactory mCacheKeyFactory;
private final BufferedDiskCache mDefaultBufferedDiskCache;
private final BoundedLinkedHashSet<CacheKey> mDiskCacheHistory;
private final MemoryCache<CacheKey, PooledByteBuffer> mEncodedMemoryCache;
private final BoundedLinkedHashSet<CacheKey> mEncodedMemoryCacheHistory;
private final ProducerContext mProducerContext;
private final BufferedDiskCache mSmallImageBufferedDiskCache;
public ProbeConsumer(Consumer<CloseableReference<CloseableImage>> consumer, ProducerContext producerContext, MemoryCache<CacheKey, PooledByteBuffer> memoryCache, BufferedDiskCache bufferedDiskCache, BufferedDiskCache bufferedDiskCache2, CacheKeyFactory cacheKeyFactory, BoundedLinkedHashSet<CacheKey> boundedLinkedHashSet, BoundedLinkedHashSet<CacheKey> boundedLinkedHashSet2) {
super(consumer);
this.mProducerContext = producerContext;
this.mEncodedMemoryCache = memoryCache;
this.mDefaultBufferedDiskCache = bufferedDiskCache;
this.mSmallImageBufferedDiskCache = bufferedDiskCache2;
this.mCacheKeyFactory = cacheKeyFactory;
this.mEncodedMemoryCacheHistory = boundedLinkedHashSet;
this.mDiskCacheHistory = boundedLinkedHashSet2;
}
public void onNewResultImpl(@Nullable CloseableReference<CloseableImage> closeableReference, int i) {
try {
if (FrescoSystrace.isTracing()) {
FrescoSystrace.beginSection("BitmapProbeProducer#onNewResultImpl");
}
if (!isNotLast(i) && closeableReference != null) {
if (!statusHasAnyFlag(i, 8)) {
ImageRequest imageRequest = this.mProducerContext.getImageRequest();
CacheKey encodedCacheKey = this.mCacheKeyFactory.getEncodedCacheKey(imageRequest, this.mProducerContext.getCallerContext());
String str = (String) this.mProducerContext.getExtra("origin");
if (str != null && str.equals("memory_bitmap")) {
if (this.mProducerContext.getImagePipelineConfig().getExperiments().isEncodedMemoryCacheProbingEnabled() && !this.mEncodedMemoryCacheHistory.contains(encodedCacheKey)) {
this.mEncodedMemoryCache.probe(encodedCacheKey);
this.mEncodedMemoryCacheHistory.add(encodedCacheKey);
}
if (this.mProducerContext.getImagePipelineConfig().getExperiments().isDiskCacheProbingEnabled() && !this.mDiskCacheHistory.contains(encodedCacheKey)) {
(imageRequest.getCacheChoice() == ImageRequest.CacheChoice.SMALL ? this.mSmallImageBufferedDiskCache : this.mDefaultBufferedDiskCache).addKeyForAsyncProbing(encodedCacheKey);
this.mDiskCacheHistory.add(encodedCacheKey);
}
}
getConsumer().onNewResult(closeableReference, i);
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
return;
}
return;
}
}
getConsumer().onNewResult(closeableReference, i);
} finally {
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
}
}
}
}
}
Download file