mirror of https://github.com/KokaKiwi/BarInsta
47 lines
1.4 KiB
Java
Executable File
47 lines
1.4 KiB
Java
Executable File
package awaisomereport;
|
|
|
|
import android.app.Application;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
public final class CrashReporter implements Thread.UncaughtExceptionHandler {
|
|
private static final String TAG = CrashReporter.class.getSimpleName();
|
|
|
|
private static CrashReporter reporterInstance;
|
|
|
|
// private final File crashLogsZip;
|
|
private final CrashHandler crashHandler;
|
|
|
|
private boolean startAttempted = false;
|
|
private Thread.UncaughtExceptionHandler defaultEH;
|
|
|
|
public static CrashReporter get(final Application application) {
|
|
if (reporterInstance == null) {
|
|
reporterInstance = new CrashReporter(application);
|
|
}
|
|
return reporterInstance;
|
|
}
|
|
|
|
private CrashReporter(@NonNull final Application application) {
|
|
crashHandler = new CrashHandler(application);
|
|
// this.crashLogsZip = new File(application.getExternalCacheDir(), "crash_logs.zip");
|
|
}
|
|
|
|
public void start() {
|
|
if (!startAttempted) {
|
|
defaultEH = Thread.getDefaultUncaughtExceptionHandler();
|
|
Thread.setDefaultUncaughtExceptionHandler(this);
|
|
startAttempted = true;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void uncaughtException(@NonNull final Thread t, @NonNull final Throwable exception) {
|
|
if (crashHandler == null) {
|
|
defaultEH.uncaughtException(t, exception);
|
|
return;
|
|
}
|
|
crashHandler.uncaughtException(t, exception, defaultEH);
|
|
}
|
|
}
|