- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
92 lines
3.0 KiB
Java
92 lines
3.0 KiB
Java
package com.facebook.internal.instrument.crashshield;
|
|
|
|
import android.os.Handler;
|
|
import android.os.Looper;
|
|
import androidx.annotation.VisibleForTesting;
|
|
import com.facebook.FacebookSdk;
|
|
import com.facebook.internal.instrument.ExceptionAnalyzer;
|
|
import com.facebook.internal.instrument.InstrumentData;
|
|
import java.util.Collections;
|
|
import java.util.Set;
|
|
import java.util.WeakHashMap;
|
|
import kotlin.jvm.internal.Intrinsics;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public final class CrashShieldHandler {
|
|
public static final CrashShieldHandler INSTANCE = new CrashShieldHandler();
|
|
private static final Set<Object> crashingObjects = Collections.newSetFromMap(new WeakHashMap());
|
|
private static boolean enabled;
|
|
|
|
@VisibleForTesting
|
|
public static final void disable() {
|
|
enabled = false;
|
|
}
|
|
|
|
public static final void enable() {
|
|
enabled = true;
|
|
}
|
|
|
|
@VisibleForTesting
|
|
public static final boolean isDebug() {
|
|
return false;
|
|
}
|
|
|
|
public static final void methodFinished(Object obj) {
|
|
}
|
|
|
|
private CrashShieldHandler() {
|
|
}
|
|
|
|
public static final void handleThrowable(Throwable th, Object o) {
|
|
Intrinsics.checkNotNullParameter(o, "o");
|
|
if (enabled) {
|
|
crashingObjects.add(o);
|
|
if (FacebookSdk.getAutoLogAppEventsEnabled()) {
|
|
ExceptionAnalyzer.execute(th);
|
|
InstrumentData.Builder builder = InstrumentData.Builder.INSTANCE;
|
|
InstrumentData.Builder.build(th, InstrumentData.Type.CrashShield).save();
|
|
}
|
|
scheduleCrashInDebug(th);
|
|
}
|
|
}
|
|
|
|
public static final boolean isObjectCrashing(Object o) {
|
|
Intrinsics.checkNotNullParameter(o, "o");
|
|
return crashingObjects.contains(o);
|
|
}
|
|
|
|
public static final void reset() {
|
|
resetCrashingObjects();
|
|
}
|
|
|
|
public static final void resetCrashingObjects() {
|
|
crashingObjects.clear();
|
|
}
|
|
|
|
@VisibleForTesting
|
|
public static final void scheduleCrashInDebug(final Throwable th) {
|
|
if (isDebug()) {
|
|
new Handler(Looper.getMainLooper()).post(new Runnable() { // from class: com.facebook.internal.instrument.crashshield.CrashShieldHandler$scheduleCrashInDebug$1
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
if (CrashShieldHandler.isObjectCrashing(this)) {
|
|
return;
|
|
}
|
|
try {
|
|
if (CrashShieldHandler.isObjectCrashing(this)) {
|
|
return;
|
|
}
|
|
try {
|
|
throw new RuntimeException(th);
|
|
} catch (Throwable th2) {
|
|
CrashShieldHandler.handleThrowable(th2, this);
|
|
}
|
|
} catch (Throwable th3) {
|
|
CrashShieldHandler.handleThrowable(th3, this);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|