Include full stacktrace in exception reports

pull/437/head
Alex Baker 8 years ago
parent 984596d7da
commit 99154ac861

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ga_trackingId">UA-71449238-1</string>
</resources>

@ -3,9 +3,10 @@ package org.tasks.analytics;
import android.content.Context; import android.content.Context;
import com.android.vending.billing.IabResult; import com.android.vending.billing.IabResult;
import com.google.android.gms.analytics.ExceptionParser;
import com.google.android.gms.analytics.ExceptionReporter;
import com.google.android.gms.analytics.GoogleAnalytics; import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.HitBuilders; import com.google.android.gms.analytics.HitBuilders;
import com.google.android.gms.analytics.StandardExceptionParser;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import org.tasks.BuildConfig; import org.tasks.BuildConfig;
@ -20,8 +21,8 @@ public class Tracker {
private final GoogleAnalytics analytics; private final GoogleAnalytics analytics;
private final com.google.android.gms.analytics.Tracker tracker; private final com.google.android.gms.analytics.Tracker tracker;
private final StandardExceptionParser exceptionParser; private final ExceptionParser exceptionParser;
private Context context; private final Context context;
@Inject @Inject
public Tracker(@ForApplication Context context) { public Tracker(@ForApplication Context context) {
@ -29,10 +30,22 @@ public class Tracker {
analytics = GoogleAnalytics.getInstance(context); analytics = GoogleAnalytics.getInstance(context);
tracker = analytics.newTracker(R.xml.google_analytics); tracker = analytics.newTracker(R.xml.google_analytics);
tracker.setAppVersion(Integer.toString(BuildConfig.VERSION_CODE)); tracker.setAppVersion(Integer.toString(BuildConfig.VERSION_CODE));
exceptionParser = new StandardExceptionParser(context, null); exceptionParser = new ExceptionParser() {
if (BuildConfig.DEBUG) { @Override
analytics.setDryRun(true); public String getDescription(String thread, Throwable throwable) {
} StringBuilder stack = new StringBuilder();
for (StackTraceElement element : throwable.getStackTrace()) {
stack.append(element.toString()).append("\n");
}
return String.format("%s {%s} %s", throwable.getClass().getName(), thread, stack.toString());
}
};
ExceptionReporter reporter = new ExceptionReporter(
tracker,
Thread.getDefaultUncaughtExceptionHandler(),
context);
reporter.setExceptionParser(exceptionParser);
Thread.setDefaultUncaughtExceptionHandler(reporter);
} }
public void showScreen(String screenName) { public void showScreen(String screenName) {

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="ga_trackingId">UA-43015607-3</string> <string name="ga_trackingId">UA-43015607-3</string>
<bool name="ga_reportUncaughtExceptions">true</bool>
</resources> </resources>
Loading…
Cancel
Save