]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/activity/CrashReportingActivity.java
add crash handling dialog with optional sending of the crash to the author
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / activity / CrashReportingActivity.java
diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/CrashReportingActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/CrashReportingActivity.java
new file mode 100644 (file)
index 0000000..0d72499
--- /dev/null
@@ -0,0 +1,34 @@
+package net.ktnx.mobileledger.ui.activity;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v7.app.AppCompatActivity;
+import android.util.Log;
+
+import net.ktnx.mobileledger.ui.CrashReportDialogFragment;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+public class CrashReportingActivity extends AppCompatActivity {
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
+            @Override
+            public void uncaughtException(Thread t, Throwable e) {
+                StringWriter sw = new StringWriter();
+                PrintWriter pw = new PrintWriter(sw);
+                e.printStackTrace(pw);
+
+                Log.e(null, sw.toString());
+
+                CrashReportDialogFragment df = new CrashReportDialogFragment();
+                df.setCrashReportText(sw.toString());
+                df.show(getSupportFragmentManager(), "crash_report");
+            }
+        });
+        Log.d("crash", "Uncaught exception handler set");
+    }
+}