conversations-classic/src/main/java/eu/siacs/conversations/utils/ExceptionHandler.java

36 lines
1.1 KiB
Java
Raw Normal View History

2014-10-22 16:38:44 +00:00
package eu.siacs.conversations.utils;
2015-07-20 12:26:29 +00:00
import android.content.Context;
import android.support.annotation.NonNull;
2015-07-20 12:26:29 +00:00
2014-10-22 16:38:44 +00:00
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.Thread.UncaughtExceptionHandler;
import eu.siacs.conversations.services.NotificationService;
2014-10-22 16:38:44 +00:00
public class ExceptionHandler implements UncaughtExceptionHandler {
private final UncaughtExceptionHandler defaultHandler;
private final Context context;
2014-10-22 16:38:44 +00:00
ExceptionHandler(final Context context) {
2014-10-22 16:38:44 +00:00
this.context = context;
this.defaultHandler = Thread.getDefaultUncaughtExceptionHandler();
}
@Override
public void uncaughtException(@NonNull Thread thread, final Throwable throwable) {
NotificationService.cancelIncomingCallNotification(context);
final Writer stringWriter = new StringWriter();
final PrintWriter printWriter = new PrintWriter(stringWriter);
throwable.printStackTrace(printWriter);
final String stacktrace = stringWriter.toString();
2014-10-22 16:38:44 +00:00
printWriter.close();
ExceptionHelper.writeToStacktraceFile(context, stacktrace);
this.defaultHandler.uncaughtException(thread, throwable);
2014-10-22 16:38:44 +00:00
}
}