CrackMe.apk
Download file
package com.facebook.imagepipeline.producers;
import com.facebook.cache.common.CacheKey;
import com.facebook.common.internal.ImmutableMap;
import com.facebook.common.references.CloseableReference;
import com.facebook.imagepipeline.cache.CacheKeyFactory;
import com.facebook.imagepipeline.cache.MemoryCache;
import com.facebook.imagepipeline.image.CloseableImage;
import com.facebook.imagepipeline.image.HasImageMetadata;
import com.facebook.imagepipeline.image.QualityInfo;
import com.facebook.imagepipeline.request.ImageRequest;
import com.facebook.imagepipeline.systrace.FrescoSystrace;
import java.util.Map;
import javax.annotation.Nullable;
public class BitmapMemoryCacheProducer implements Producer<CloseableReference<CloseableImage>> {
public static final String EXTRA_CACHED_VALUE_FOUND = "cached_value_found";
private static final String ORIGIN_SUBCATEGORY = "pipe_bg";
public static final String PRODUCER_NAME = "BitmapMemoryCacheProducer";
private final CacheKeyFactory mCacheKeyFactory;
private final Producer<CloseableReference<CloseableImage>> mInputProducer;
/* access modifiers changed from: private */
public final MemoryCache<CacheKey, CloseableImage> mMemoryCache;
/* access modifiers changed from: protected */
public String getOriginSubcategory() {
return ORIGIN_SUBCATEGORY;
}
/* access modifiers changed from: protected */
public String getProducerName() {
return PRODUCER_NAME;
}
public BitmapMemoryCacheProducer(MemoryCache<CacheKey, CloseableImage> memoryCache, CacheKeyFactory cacheKeyFactory, Producer<CloseableReference<CloseableImage>> producer) {
this.mMemoryCache = memoryCache;
this.mCacheKeyFactory = cacheKeyFactory;
this.mInputProducer = producer;
}
public void produceResults(Consumer<CloseableReference<CloseableImage>> consumer, ProducerContext producerContext) {
boolean isTracing;
try {
if (FrescoSystrace.isTracing()) {
FrescoSystrace.beginSection("BitmapMemoryCacheProducer#produceResults");
}
ProducerListener2 producerListener = producerContext.getProducerListener();
producerListener.onProducerStart(producerContext, getProducerName());
CacheKey bitmapCacheKey = this.mCacheKeyFactory.getBitmapCacheKey(producerContext.getImageRequest(), producerContext.getCallerContext());
CloseableReference<CloseableImage> closeableReference = this.mMemoryCache.get(bitmapCacheKey);
Map map = null;
if (closeableReference != null) {
maybeSetExtrasFromCloseableImage(closeableReference.get(), producerContext);
boolean isOfFullQuality = closeableReference.get().getQualityInfo().isOfFullQuality();
if (isOfFullQuality) {
producerListener.onProducerFinishWithSuccess(producerContext, getProducerName(), producerListener.requiresExtraMap(producerContext, getProducerName()) ? ImmutableMap.of("cached_value_found", "true") : null);
producerListener.onUltimateProducerReached(producerContext, getProducerName(), true);
producerContext.putOriginExtra("memory_bitmap", getOriginSubcategory());
consumer.onProgressUpdate(1.0f);
}
consumer.onNewResult(closeableReference, BaseConsumer.simpleStatusForIsLast(isOfFullQuality));
closeableReference.close();
if (isOfFullQuality) {
if (!isTracing) {
return;
}
return;
}
}
if (producerContext.getLowestPermittedRequestLevel().getValue() >= ImageRequest.RequestLevel.BITMAP_MEMORY_CACHE.getValue()) {
producerListener.onProducerFinishWithSuccess(producerContext, getProducerName(), producerListener.requiresExtraMap(producerContext, getProducerName()) ? ImmutableMap.of("cached_value_found", "false") : null);
producerListener.onUltimateProducerReached(producerContext, getProducerName(), false);
producerContext.putOriginExtra("memory_bitmap", getOriginSubcategory());
consumer.onNewResult(null, 1);
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
return;
}
return;
}
Consumer<CloseableReference<CloseableImage>> wrapConsumer = wrapConsumer(consumer, bitmapCacheKey, producerContext.getImageRequest().isMemoryCacheEnabled());
String producerName = getProducerName();
if (producerListener.requiresExtraMap(producerContext, getProducerName())) {
map = ImmutableMap.of("cached_value_found", "false");
}
producerListener.onProducerFinishWithSuccess(producerContext, producerName, map);
if (FrescoSystrace.isTracing()) {
FrescoSystrace.beginSection("mInputProducer.produceResult");
}
this.mInputProducer.produceResults(wrapConsumer, producerContext);
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
}
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
}
} finally {
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
}
}
}
/* access modifiers changed from: protected */
public Consumer<CloseableReference<CloseableImage>> wrapConsumer(Consumer<CloseableReference<CloseableImage>> consumer, final CacheKey cacheKey, final boolean z) {
return new DelegatingConsumer<CloseableReference<CloseableImage>, CloseableReference<CloseableImage>>(consumer) {
public void onNewResultImpl(@Nullable CloseableReference<CloseableImage> closeableReference, int i) {
CloseableReference<V> closeableReference2;
CloseableReference closeableReference3;
try {
if (FrescoSystrace.isTracing()) {
FrescoSystrace.beginSection("BitmapMemoryCacheProducer#onNewResultImpl");
}
boolean isLast = isLast(i);
closeableReference2 = null;
if (closeableReference == null) {
if (isLast) {
getConsumer().onNewResult(null, i);
}
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
return;
}
return;
}
if (!closeableReference.get().isStateful()) {
if (!statusHasFlag(i, 8)) {
if (!isLast && (closeableReference3 = BitmapMemoryCacheProducer.this.mMemoryCache.get(cacheKey)) != null) {
QualityInfo qualityInfo = closeableReference.get().getQualityInfo();
QualityInfo qualityInfo2 = ((CloseableImage) closeableReference3.get()).getQualityInfo();
if (qualityInfo2.isOfFullQuality() || qualityInfo2.getQuality() >= qualityInfo.getQuality()) {
getConsumer().onNewResult(closeableReference3, i);
CloseableReference.closeSafely((CloseableReference<?>) closeableReference3);
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
return;
}
return;
}
CloseableReference.closeSafely((CloseableReference<?>) closeableReference3);
}
if (z) {
closeableReference2 = BitmapMemoryCacheProducer.this.mMemoryCache.cache(cacheKey, closeableReference);
}
if (isLast) {
getConsumer().onProgressUpdate(1.0f);
}
Consumer consumer = getConsumer();
if (closeableReference2 != null) {
closeableReference = closeableReference2;
}
consumer.onNewResult(closeableReference, i);
CloseableReference.closeSafely((CloseableReference<?>) closeableReference2);
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
return;
}
return;
}
}
getConsumer().onNewResult(closeableReference, i);
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
}
} catch (Throwable th) {
if (FrescoSystrace.isTracing()) {
FrescoSystrace.endSection();
}
throw th;
}
}
};
}
private static void maybeSetExtrasFromCloseableImage(HasImageMetadata hasImageMetadata, ProducerContext producerContext) {
producerContext.putExtras(hasImageMetadata.getExtras());
}
}
Download file