CrackMe.apk
Download file
package com.facebook.imagepipeline.producers;
import com.facebook.common.internal.Preconditions;
import com.facebook.common.memory.PooledByteBuffer;
import com.facebook.common.memory.PooledByteBufferFactory;
import com.facebook.common.memory.PooledByteBufferOutputStream;
import com.facebook.common.references.CloseableReference;
import com.facebook.common.util.TriState;
import com.facebook.imageformat.DefaultImageFormats;
import com.facebook.imageformat.ImageFormat;
import com.facebook.imageformat.ImageFormatChecker;
import com.facebook.imagepipeline.image.EncodedImage;
import com.facebook.imagepipeline.nativecode.WebpTranscoder;
import com.facebook.imagepipeline.nativecode.WebpTranscoderFactory;
import java.io.InputStream;
import java.util.concurrent.Executor;
import javax.annotation.Nullable;
public class WebpTranscodeProducer implements Producer<EncodedImage> {
private static final int DEFAULT_JPEG_QUALITY = 80;
public static final String PRODUCER_NAME = "WebpTranscodeProducer";
private final Executor mExecutor;
private final Producer<EncodedImage> mInputProducer;
/* access modifiers changed from: private */
public final PooledByteBufferFactory mPooledByteBufferFactory;
/* JADX WARNING: type inference failed for: r3v0, types: [com.facebook.imagepipeline.producers.Producer<com.facebook.imagepipeline.image.EncodedImage>, java.lang.Object] */
/* JADX WARNING: Unknown variable types count: 1 */
/* Code decompiled incorrectly, please refer to instructions dump. */
public WebpTranscodeProducer(java.util.concurrent.Executor r1, com.facebook.common.memory.PooledByteBufferFactory r2, com.facebook.imagepipeline.producers.Producer<com.facebook.imagepipeline.image.EncodedImage> r3) {
/*
r0 = this;
r0.<init>()
java.lang.Object r1 = com.facebook.common.internal.Preconditions.checkNotNull(r1)
java.util.concurrent.Executor r1 = (java.util.concurrent.Executor) r1
r0.mExecutor = r1
java.lang.Object r1 = com.facebook.common.internal.Preconditions.checkNotNull(r2)
com.facebook.common.memory.PooledByteBufferFactory r1 = (com.facebook.common.memory.PooledByteBufferFactory) r1
r0.mPooledByteBufferFactory = r1
java.lang.Object r1 = com.facebook.common.internal.Preconditions.checkNotNull(r3)
com.facebook.imagepipeline.producers.Producer r1 = (com.facebook.imagepipeline.producers.Producer) r1
r0.mInputProducer = r1
return
*/
throw new UnsupportedOperationException("Method not decompiled: com.facebook.imagepipeline.producers.WebpTranscodeProducer.<init>(java.util.concurrent.Executor, com.facebook.common.memory.PooledByteBufferFactory, com.facebook.imagepipeline.producers.Producer):void");
}
public void produceResults(Consumer<EncodedImage> consumer, ProducerContext producerContext) {
this.mInputProducer.produceResults(new WebpTranscodeConsumer(consumer, producerContext), producerContext);
}
private class WebpTranscodeConsumer extends DelegatingConsumer<EncodedImage, EncodedImage> {
private final ProducerContext mContext;
private TriState mShouldTranscodeWhenFinished = TriState.UNSET;
public WebpTranscodeConsumer(Consumer<EncodedImage> consumer, ProducerContext producerContext) {
super(consumer);
this.mContext = producerContext;
}
/* access modifiers changed from: protected */
public void onNewResultImpl(@Nullable EncodedImage encodedImage, int i) {
if (this.mShouldTranscodeWhenFinished == TriState.UNSET && encodedImage != null) {
this.mShouldTranscodeWhenFinished = WebpTranscodeProducer.shouldTranscode(encodedImage);
}
if (this.mShouldTranscodeWhenFinished == TriState.NO) {
getConsumer().onNewResult(encodedImage, i);
} else if (!isLast(i)) {
} else {
if (this.mShouldTranscodeWhenFinished != TriState.YES || encodedImage == null) {
getConsumer().onNewResult(encodedImage, i);
} else {
WebpTranscodeProducer.this.transcodeLastResult(encodedImage, getConsumer(), this.mContext);
}
}
}
}
/* access modifiers changed from: private */
public void transcodeLastResult(EncodedImage encodedImage, Consumer<EncodedImage> consumer, ProducerContext producerContext) {
Preconditions.checkNotNull(encodedImage);
final EncodedImage cloneOrNull = EncodedImage.cloneOrNull(encodedImage);
this.mExecutor.execute(new StatefulProducerRunnable<EncodedImage>(consumer, producerContext.getProducerListener(), producerContext, PRODUCER_NAME) {
/* access modifiers changed from: protected */
public EncodedImage getResult() throws Exception {
CloseableReference of;
PooledByteBufferOutputStream newOutputStream = WebpTranscodeProducer.this.mPooledByteBufferFactory.newOutputStream();
try {
WebpTranscodeProducer.doTranscode(cloneOrNull, newOutputStream);
of = CloseableReference.of(newOutputStream.toByteBuffer());
EncodedImage encodedImage = new EncodedImage((CloseableReference<PooledByteBuffer>) of);
encodedImage.copyMetaDataFrom(cloneOrNull);
CloseableReference.closeSafely((CloseableReference<?>) of);
newOutputStream.close();
return encodedImage;
} catch (Throwable th) {
newOutputStream.close();
throw th;
}
}
/* access modifiers changed from: protected */
public void disposeResult(EncodedImage encodedImage) {
EncodedImage.closeSafely(encodedImage);
}
/* access modifiers changed from: protected */
public void onSuccess(EncodedImage encodedImage) {
EncodedImage.closeSafely(cloneOrNull);
super.onSuccess(encodedImage);
}
/* access modifiers changed from: protected */
public void onFailure(Exception exc) {
EncodedImage.closeSafely(cloneOrNull);
super.onFailure(exc);
}
/* access modifiers changed from: protected */
public void onCancellation() {
EncodedImage.closeSafely(cloneOrNull);
super.onCancellation();
}
});
}
/* access modifiers changed from: private */
public static TriState shouldTranscode(EncodedImage encodedImage) {
Preconditions.checkNotNull(encodedImage);
ImageFormat imageFormat_WrapIOException = ImageFormatChecker.getImageFormat_WrapIOException((InputStream) Preconditions.checkNotNull(encodedImage.getInputStream()));
if (DefaultImageFormats.isStaticWebpFormat(imageFormat_WrapIOException)) {
WebpTranscoder webpTranscoder = WebpTranscoderFactory.getWebpTranscoder();
if (webpTranscoder == null) {
return TriState.NO;
}
return TriState.valueOf(!webpTranscoder.isWebpNativelySupported(imageFormat_WrapIOException));
} else if (imageFormat_WrapIOException == ImageFormat.UNKNOWN) {
return TriState.UNSET;
} else {
return TriState.NO;
}
}
/* access modifiers changed from: private */
public static void doTranscode(EncodedImage encodedImage, PooledByteBufferOutputStream pooledByteBufferOutputStream) throws Exception {
InputStream inputStream = (InputStream) Preconditions.checkNotNull(encodedImage.getInputStream());
ImageFormat imageFormat_WrapIOException = ImageFormatChecker.getImageFormat_WrapIOException(inputStream);
if (imageFormat_WrapIOException == DefaultImageFormats.WEBP_SIMPLE || imageFormat_WrapIOException == DefaultImageFormats.WEBP_EXTENDED) {
WebpTranscoderFactory.getWebpTranscoder().transcodeWebpToJpeg(inputStream, pooledByteBufferOutputStream, 80);
encodedImage.setImageFormat(DefaultImageFormats.JPEG);
} else if (imageFormat_WrapIOException == DefaultImageFormats.WEBP_LOSSLESS || imageFormat_WrapIOException == DefaultImageFormats.WEBP_EXTENDED_WITH_ALPHA) {
WebpTranscoderFactory.getWebpTranscoder().transcodeWebpToPng(inputStream, pooledByteBufferOutputStream);
encodedImage.setImageFormat(DefaultImageFormats.PNG);
} else {
throw new IllegalArgumentException("Wrong image format");
}
}
}
Download file