CrackMe.apk
Download file
package com.facebook.imagepipeline.request;
import android.net.Uri;
import com.facebook.cache.common.CacheKey;
import com.facebook.common.internal.Fn;
import com.facebook.common.internal.Objects;
import com.facebook.common.media.MediaUtils;
import com.facebook.common.util.UriUtil;
import com.facebook.imagepipeline.common.BytesRange;
import com.facebook.imagepipeline.common.ImageDecodeOptions;
import com.facebook.imagepipeline.common.Priority;
import com.facebook.imagepipeline.common.ResizeOptions;
import com.facebook.imagepipeline.common.RotationOptions;
import com.facebook.imagepipeline.listener.RequestListener;
import expo.modules.av.player.PlayerData;
import java.io.File;
import javax.annotation.Nullable;
public class ImageRequest {
public static final Fn<ImageRequest, Uri> REQUEST_TO_URI_FN = new Fn<ImageRequest, Uri>() {
@Nullable
public Uri apply(@Nullable ImageRequest imageRequest) {
if (imageRequest != null) {
return imageRequest.getSourceUri();
}
return null;
}
};
private static boolean sCacheHashcode;
private static boolean sUseCachedHashcodeInEquals;
@Nullable
private final BytesRange mBytesRange;
private final CacheChoice mCacheChoice;
@Nullable
private final Boolean mDecodePrefetches;
private final int mDelayMs;
private int mHashcode;
private final ImageDecodeOptions mImageDecodeOptions;
private final boolean mIsDiskCacheEnabled;
private final boolean mIsMemoryCacheEnabled;
private final boolean mLocalThumbnailPreviewsEnabled;
private final RequestLevel mLowestPermittedRequestLevel;
@Nullable
private final Postprocessor mPostprocessor;
private final boolean mProgressiveRenderingEnabled;
@Nullable
private final RequestListener mRequestListener;
private final Priority mRequestPriority;
@Nullable
private final ResizeOptions mResizeOptions;
@Nullable
private final Boolean mResizingAllowedOverride;
private final RotationOptions mRotationOptions;
@Nullable
private File mSourceFile;
private final Uri mSourceUri;
private final int mSourceUriType;
public enum CacheChoice {
SMALL,
DEFAULT
}
@Nullable
public static ImageRequest fromFile(@Nullable File file) {
if (file == null) {
return null;
}
return fromUri(UriUtil.getUriForFile(file));
}
@Nullable
public static ImageRequest fromUri(@Nullable Uri uri) {
if (uri == null) {
return null;
}
return ImageRequestBuilder.newBuilderWithSource(uri).build();
}
@Nullable
public static ImageRequest fromUri(@Nullable String str) {
if (str == null || str.length() == 0) {
return null;
}
return fromUri(Uri.parse(str));
}
protected ImageRequest(ImageRequestBuilder imageRequestBuilder) {
RotationOptions rotationOptions;
this.mCacheChoice = imageRequestBuilder.getCacheChoice();
Uri sourceUri = imageRequestBuilder.getSourceUri();
this.mSourceUri = sourceUri;
this.mSourceUriType = getSourceUriType(sourceUri);
this.mProgressiveRenderingEnabled = imageRequestBuilder.isProgressiveRenderingEnabled();
this.mLocalThumbnailPreviewsEnabled = imageRequestBuilder.isLocalThumbnailPreviewsEnabled();
this.mImageDecodeOptions = imageRequestBuilder.getImageDecodeOptions();
this.mResizeOptions = imageRequestBuilder.getResizeOptions();
if (imageRequestBuilder.getRotationOptions() == null) {
rotationOptions = RotationOptions.autoRotate();
} else {
rotationOptions = imageRequestBuilder.getRotationOptions();
}
this.mRotationOptions = rotationOptions;
this.mBytesRange = imageRequestBuilder.getBytesRange();
this.mRequestPriority = imageRequestBuilder.getRequestPriority();
this.mLowestPermittedRequestLevel = imageRequestBuilder.getLowestPermittedRequestLevel();
this.mIsDiskCacheEnabled = imageRequestBuilder.isDiskCacheEnabled();
this.mIsMemoryCacheEnabled = imageRequestBuilder.isMemoryCacheEnabled();
this.mDecodePrefetches = imageRequestBuilder.shouldDecodePrefetches();
this.mPostprocessor = imageRequestBuilder.getPostprocessor();
this.mRequestListener = imageRequestBuilder.getRequestListener();
this.mResizingAllowedOverride = imageRequestBuilder.getResizingAllowedOverride();
this.mDelayMs = imageRequestBuilder.getDelayMs();
}
public CacheChoice getCacheChoice() {
return this.mCacheChoice;
}
public Uri getSourceUri() {
return this.mSourceUri;
}
public int getSourceUriType() {
return this.mSourceUriType;
}
public int getPreferredWidth() {
ResizeOptions resizeOptions = this.mResizeOptions;
if (resizeOptions != null) {
return resizeOptions.width;
}
return 2048;
}
public int getPreferredHeight() {
ResizeOptions resizeOptions = this.mResizeOptions;
if (resizeOptions != null) {
return resizeOptions.height;
}
return 2048;
}
@Nullable
public ResizeOptions getResizeOptions() {
return this.mResizeOptions;
}
public RotationOptions getRotationOptions() {
return this.mRotationOptions;
}
@Deprecated
public boolean getAutoRotateEnabled() {
return this.mRotationOptions.useImageMetadata();
}
@Nullable
public BytesRange getBytesRange() {
return this.mBytesRange;
}
public ImageDecodeOptions getImageDecodeOptions() {
return this.mImageDecodeOptions;
}
public boolean getProgressiveRenderingEnabled() {
return this.mProgressiveRenderingEnabled;
}
public boolean getLocalThumbnailPreviewsEnabled() {
return this.mLocalThumbnailPreviewsEnabled;
}
public Priority getPriority() {
return this.mRequestPriority;
}
public RequestLevel getLowestPermittedRequestLevel() {
return this.mLowestPermittedRequestLevel;
}
public boolean isDiskCacheEnabled() {
return this.mIsDiskCacheEnabled;
}
public boolean isMemoryCacheEnabled() {
return this.mIsMemoryCacheEnabled;
}
@Nullable
public Boolean shouldDecodePrefetches() {
return this.mDecodePrefetches;
}
@Nullable
public Boolean getResizingAllowedOverride() {
return this.mResizingAllowedOverride;
}
public int getDelayMs() {
return this.mDelayMs;
}
public synchronized File getSourceFile() {
if (this.mSourceFile == null) {
this.mSourceFile = new File(this.mSourceUri.getPath());
}
return this.mSourceFile;
}
@Nullable
public Postprocessor getPostprocessor() {
return this.mPostprocessor;
}
@Nullable
public RequestListener getRequestListener() {
return this.mRequestListener;
}
public boolean equals(@Nullable Object obj) {
if (!(obj instanceof ImageRequest)) {
return false;
}
ImageRequest imageRequest = (ImageRequest) obj;
if (sUseCachedHashcodeInEquals) {
int i = this.mHashcode;
int i2 = imageRequest.mHashcode;
if (!(i == 0 || i2 == 0 || i == i2)) {
return false;
}
}
if (this.mLocalThumbnailPreviewsEnabled != imageRequest.mLocalThumbnailPreviewsEnabled || this.mIsDiskCacheEnabled != imageRequest.mIsDiskCacheEnabled || this.mIsMemoryCacheEnabled != imageRequest.mIsMemoryCacheEnabled || !Objects.equal(this.mSourceUri, imageRequest.mSourceUri) || !Objects.equal(this.mCacheChoice, imageRequest.mCacheChoice) || !Objects.equal(this.mSourceFile, imageRequest.mSourceFile) || !Objects.equal(this.mBytesRange, imageRequest.mBytesRange) || !Objects.equal(this.mImageDecodeOptions, imageRequest.mImageDecodeOptions) || !Objects.equal(this.mResizeOptions, imageRequest.mResizeOptions) || !Objects.equal(this.mRequestPriority, imageRequest.mRequestPriority) || !Objects.equal(this.mLowestPermittedRequestLevel, imageRequest.mLowestPermittedRequestLevel) || !Objects.equal(this.mDecodePrefetches, imageRequest.mDecodePrefetches) || !Objects.equal(this.mResizingAllowedOverride, imageRequest.mResizingAllowedOverride) || !Objects.equal(this.mRotationOptions, imageRequest.mRotationOptions)) {
return false;
}
Postprocessor postprocessor = this.mPostprocessor;
CacheKey cacheKey = null;
CacheKey postprocessorCacheKey = postprocessor != null ? postprocessor.getPostprocessorCacheKey() : null;
Postprocessor postprocessor2 = imageRequest.mPostprocessor;
if (postprocessor2 != null) {
cacheKey = postprocessor2.getPostprocessorCacheKey();
}
if (Objects.equal(postprocessorCacheKey, cacheKey) && this.mDelayMs == imageRequest.mDelayMs) {
return true;
}
return false;
}
public int hashCode() {
boolean z = sCacheHashcode;
int i = z ? this.mHashcode : 0;
if (i == 0) {
Postprocessor postprocessor = this.mPostprocessor;
i = Objects.hashCode(this.mCacheChoice, this.mSourceUri, Boolean.valueOf(this.mLocalThumbnailPreviewsEnabled), this.mBytesRange, this.mRequestPriority, this.mLowestPermittedRequestLevel, Boolean.valueOf(this.mIsDiskCacheEnabled), Boolean.valueOf(this.mIsMemoryCacheEnabled), this.mImageDecodeOptions, this.mDecodePrefetches, this.mResizeOptions, this.mRotationOptions, postprocessor != null ? postprocessor.getPostprocessorCacheKey() : null, this.mResizingAllowedOverride, Integer.valueOf(this.mDelayMs));
if (z) {
this.mHashcode = i;
}
}
return i;
}
public String toString() {
return Objects.toStringHelper((Object) this).add(PlayerData.STATUS_URI_KEY_PATH, (Object) this.mSourceUri).add("cacheChoice", (Object) this.mCacheChoice).add("decodeOptions", (Object) this.mImageDecodeOptions).add("postprocessor", (Object) this.mPostprocessor).add("priority", (Object) this.mRequestPriority).add("resizeOptions", (Object) this.mResizeOptions).add("rotationOptions", (Object) this.mRotationOptions).add("bytesRange", (Object) this.mBytesRange).add("resizingAllowedOverride", (Object) this.mResizingAllowedOverride).add("progressiveRenderingEnabled", this.mProgressiveRenderingEnabled).add("localThumbnailPreviewsEnabled", this.mLocalThumbnailPreviewsEnabled).add("lowestPermittedRequestLevel", (Object) this.mLowestPermittedRequestLevel).add("isDiskCacheEnabled", this.mIsDiskCacheEnabled).add("isMemoryCacheEnabled", this.mIsMemoryCacheEnabled).add("decodePrefetches", (Object) this.mDecodePrefetches).add("delayMs", this.mDelayMs).toString();
}
public enum RequestLevel {
FULL_FETCH(1),
DISK_CACHE(2),
ENCODED_MEMORY_CACHE(3),
BITMAP_MEMORY_CACHE(4);
private int mValue;
private RequestLevel(int i) {
this.mValue = i;
}
public int getValue() {
return this.mValue;
}
public static RequestLevel getMax(RequestLevel requestLevel, RequestLevel requestLevel2) {
return requestLevel.getValue() > requestLevel2.getValue() ? requestLevel : requestLevel2;
}
}
private static int getSourceUriType(Uri uri) {
if (uri == null) {
return -1;
}
if (UriUtil.isNetworkUri(uri)) {
return 0;
}
if (UriUtil.isLocalFileUri(uri)) {
return MediaUtils.isVideo(MediaUtils.extractMime(uri.getPath())) ? 2 : 3;
}
if (UriUtil.isLocalContentUri(uri)) {
return 4;
}
if (UriUtil.isLocalAssetUri(uri)) {
return 5;
}
if (UriUtil.isLocalResourceUri(uri)) {
return 6;
}
if (UriUtil.isDataUri(uri)) {
return 7;
}
if (UriUtil.isQualifiedResourceUri(uri)) {
return 8;
}
return -1;
}
public static void setUseCachedHashcodeInEquals(boolean z) {
sUseCachedHashcodeInEquals = z;
}
public static void setCacheHashcode(boolean z) {
sCacheHashcode = z;
}
}
Download file