You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.2 KiB
59 lines
2.2 KiB
package awaisomereport;
|
|
|
|
import android.app.Application;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import awais.instagrabber.BuildConfig;
|
|
import awais.instagrabber.fragments.settings.PreferenceKeys;
|
|
import io.sentry.SentryLevel;
|
|
import io.sentry.android.core.SentryAndroid;
|
|
import io.sentry.protocol.Contexts;
|
|
import io.sentry.protocol.Device;
|
|
|
|
import static awais.instagrabber.utils.Utils.settingsHelper;
|
|
|
|
public class CrashHandler implements ICrashHandler {
|
|
private static final String TAG = CrashHandler.class.getSimpleName();
|
|
|
|
private final Application application;
|
|
private final boolean enabled;
|
|
|
|
public CrashHandler(@NonNull final Application application) {
|
|
this.application = application;
|
|
if (!settingsHelper.hasPreference(PreferenceKeys.PREF_ENABLE_SENTRY)) {
|
|
// disabled by default (change to true if we need enabled by default)
|
|
enabled = false;
|
|
} else {
|
|
enabled = settingsHelper.getBoolean(PreferenceKeys.PREF_ENABLE_SENTRY);
|
|
}
|
|
if (!enabled) return;
|
|
SentryAndroid.init(application, options -> {
|
|
options.setDsn(BuildConfig.dsn);
|
|
options.setDiagnosticLevel(SentryLevel.ERROR);
|
|
options.setBeforeSend((event, hint) -> {
|
|
// Removing unneeded info from event
|
|
final Contexts contexts = event.getContexts();
|
|
final Device device = contexts.getDevice();
|
|
device.setName(null);
|
|
device.setTimezone(null);
|
|
device.setCharging(null);
|
|
device.setBootTime(null);
|
|
device.setFreeStorage(null);
|
|
device.setBatteryTemperature(null);
|
|
return event;
|
|
});
|
|
});
|
|
}
|
|
|
|
@Override
|
|
public void uncaughtException(@NonNull final Thread t,
|
|
@NonNull final Throwable exception,
|
|
@NonNull final Thread.UncaughtExceptionHandler defaultEH) {
|
|
// When enabled, Sentry auto captures unhandled exceptions
|
|
if (!enabled) {
|
|
CrashReporterHelper.startErrorReporterActivity(application, exception);
|
|
}
|
|
defaultEH.uncaughtException(t, exception);
|
|
}
|
|
}
|