diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/BriarReportSender.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/BriarReportSender.java index e5d62cdd8a8fca3007396e9d3b187306a21995f5..f4d9b5aef93f3057f96488bc437878b0f2ba4e79 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/BriarReportSender.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/BriarReportSender.java @@ -6,7 +6,6 @@ import android.support.annotation.NonNull; import org.acra.collector.CrashReportData; import org.acra.sender.ReportSender; import org.acra.sender.ReportSenderException; -import org.acra.util.JSONReportBuilder.JSONReportException; import org.briarproject.bramble.api.reporting.DevReporter; import org.briarproject.bramble.util.AndroidUtils; import org.briarproject.briar.android.AndroidComponent; @@ -34,12 +33,7 @@ public class BriarReportSender implements ReportSender { @NonNull CrashReportData errorContent) throws ReportSenderException { component.inject(this); - String crashReport; - try { - crashReport = errorContent.toJSON().toString(); - } catch (JSONReportException e) { - throw new ReportSenderException("Couldn't create JSON", e); - } + String crashReport = errorContent.toJSON().toString(); try { File reportDir = AndroidUtils.getReportDir(ctx); String reportId = errorContent.getProperty(REPORT_ID); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java index 2b29c79d5d819e017c5bb3304fdf27f918e06a8b..d20ef85737754feae03cf319aedaeaea1ba4ff53 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/DevReportActivity.java @@ -24,9 +24,11 @@ import org.acra.ReportField; import org.acra.collector.CrashReportData; import org.acra.dialog.BaseCrashReportDialog; import org.acra.file.CrashReportPersister; +import org.acra.model.Element; import org.briarproject.briar.R; import org.briarproject.briar.android.Localizer; import org.briarproject.briar.android.util.UserFeedback; +import org.json.JSONException; import java.io.File; import java.io.IOException; @@ -282,7 +284,7 @@ public class DevReportActivity extends BaseCrashReportDialog CrashReportPersister persister = new CrashReportPersister(); try { return persister.load(reportFile); - } catch (IOException e) { + } catch (IOException | JSONException e) { LOG.log(WARNING, "Could not load report file", e); return null; } @@ -292,9 +294,10 @@ public class DevReportActivity extends BaseCrashReportDialog protected void onPostExecute(CrashReportData crashData) { LayoutInflater inflater = getLayoutInflater(); if (crashData != null) { - for (Entry<ReportField, String> e : crashData.entrySet()) { + for (Entry<ReportField, Element> e : crashData.entrySet()) { ReportField field = e.getKey(); - String value = e.getValue().replaceAll("\\\\n", "\n"); + String value = e.getValue().toString() + .replaceAll("\\\\n", "\n"); boolean required = requiredFields.contains(field); boolean excluded = excludedFields.contains(field); View v = inflater.inflate(R.layout.list_item_crash, @@ -343,10 +346,10 @@ public class DevReportActivity extends BaseCrashReportDialog data.remove(field); } } else { - Iterator<Entry<ReportField, String>> iter = + Iterator<Entry<ReportField, Element>> iter = data.entrySet().iterator(); while (iter.hasNext()) { - Entry<ReportField, String> e = iter.next(); + Entry<ReportField, Element> e = iter.next(); if (!requiredFields.contains(e.getKey())) { iter.remove(); } @@ -354,7 +357,7 @@ public class DevReportActivity extends BaseCrashReportDialog } persister.store(data, reportFile); return true; - } catch (IOException e) { + } catch (IOException | JSONException e) { LOG.log(WARNING, "Error processing report file", e); return false; }