CrackMe.apk
Download file
package com.facebook.react.modules.fresco;
import com.facebook.common.logging.FLog;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.imagepipeline.backends.okhttp3.OkHttpImagePipelineConfigFactory;
import com.facebook.imagepipeline.core.ImagePipeline;
import com.facebook.imagepipeline.core.ImagePipelineConfig;
import com.facebook.react.bridge.LifecycleEventListener;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.common.ReactConstants;
import com.facebook.react.module.annotations.ReactModule;
import com.facebook.react.modules.common.ModuleDataCleaner;
import com.facebook.react.modules.network.CookieJarContainer;
import com.facebook.react.modules.network.ForwardingCookieHandler;
import com.facebook.react.modules.network.OkHttpClientProvider;
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
import java.util.HashSet;
import okhttp3.JavaNetCookieJar;
import okhttp3.OkHttpClient;
@ReactModule(name = "FrescoModule", needsEagerInit = true)
public class FrescoModule extends ReactContextBaseJavaModule implements ModuleDataCleaner.Cleanable, LifecycleEventListener, TurboModule {
public static final String NAME = "FrescoModule";
private static boolean sHasBeenInitialized = false;
private final boolean mClearOnDestroy;
private ImagePipelineConfig mConfig;
private ImagePipeline mImagePipeline;
public String getName() {
return NAME;
}
public void onHostPause() {
}
public void onHostResume() {
}
public FrescoModule(ReactApplicationContext reactApplicationContext) {
this(reactApplicationContext, true, (ImagePipelineConfig) null);
}
public FrescoModule(ReactApplicationContext reactApplicationContext, boolean z) {
this(reactApplicationContext, z, (ImagePipelineConfig) null);
}
public FrescoModule(ReactApplicationContext reactApplicationContext, ImagePipeline imagePipeline, boolean z) {
this(reactApplicationContext, z);
this.mImagePipeline = imagePipeline;
}
public FrescoModule(ReactApplicationContext reactApplicationContext, boolean z, ImagePipelineConfig imagePipelineConfig) {
super(reactApplicationContext);
this.mClearOnDestroy = z;
this.mConfig = imagePipelineConfig;
}
public void initialize() {
super.initialize();
getReactApplicationContext().addLifecycleEventListener(this);
if (!hasBeenInitialized()) {
if (this.mConfig == null) {
this.mConfig = getDefaultConfig(getReactApplicationContext());
}
Fresco.initialize(getReactApplicationContext().getApplicationContext(), this.mConfig);
sHasBeenInitialized = true;
} else if (this.mConfig != null) {
FLog.w(ReactConstants.TAG, "Fresco has already been initialized with a different config. The new Fresco configuration will be ignored!");
}
this.mConfig = null;
}
public void clearSensitiveData() {
getImagePipeline().clearCaches();
}
public static boolean hasBeenInitialized() {
return sHasBeenInitialized;
}
private static ImagePipelineConfig getDefaultConfig(ReactContext reactContext) {
return getDefaultConfigBuilder(reactContext).build();
}
public static ImagePipelineConfig.Builder getDefaultConfigBuilder(ReactContext reactContext) {
HashSet hashSet = new HashSet();
hashSet.add(new SystraceRequestListener());
OkHttpClient createClient = OkHttpClientProvider.createClient();
((CookieJarContainer) createClient.cookieJar()).setCookieJar(new JavaNetCookieJar(new ForwardingCookieHandler(reactContext)));
return OkHttpImagePipelineConfigFactory.newBuilder(reactContext.getApplicationContext(), createClient).setNetworkFetcher(new ReactOkHttpNetworkFetcher(createClient)).setDownsampleEnabled(false).setRequestListeners(hashSet);
}
public void onHostDestroy() {
if (hasBeenInitialized() && this.mClearOnDestroy) {
getImagePipeline().clearMemoryCaches();
}
}
private ImagePipeline getImagePipeline() {
if (this.mImagePipeline == null) {
this.mImagePipeline = Fresco.getImagePipeline();
}
return this.mImagePipeline;
}
public void invalidate() {
super.invalidate();
ReactApplicationContext reactApplicationContextIfActiveOrWarn = getReactApplicationContextIfActiveOrWarn();
if (reactApplicationContextIfActiveOrWarn != null) {
reactApplicationContextIfActiveOrWarn.removeLifecycleEventListener(this);
}
}
}
Download file