Crash reporting: change to the ACRA http reporter instead of email.

This solves all of the issues with ProtonMail and Tutanota, and is better
anyway.
pull/146/head
Tom Hacohen 4 years ago
parent 7103d7ff86
commit f7e0e30b65

@ -148,9 +148,9 @@ dependencies {
def etebaseVersion = '2.3.0'
implementation "com.etebase:client:$etebaseVersion"
def acraVersion = '5.3.0'
implementation "ch.acra:acra-mail:$acraVersion"
implementation "ch.acra:acra-notification:$acraVersion"
def acraVersion = '5.7.0'
implementation "ch.acra:acra-http:$acraVersion"
implementation "ch.acra:acra-dialog:$acraVersion"
def supportVersion = '1.0.0'
implementation "androidx.legacy:legacy-support-core-ui:$supportVersion"
implementation "androidx.core:core:$supportVersion"

@ -3,11 +3,10 @@ package com.etesync.syncadapter;
import android.content.Context;
import org.acra.config.CoreConfigurationBuilder;
import org.acra.config.MailSenderConfigurationBuilder;
import org.acra.config.NotificationConfigurationBuilder;
import org.acra.config.DialogConfigurationBuilder;
import org.acra.config.HttpSenderConfigurationBuilder;
import org.acra.data.StringFormat;
import static com.etesync.syncadapter.utils.EventEmailInvitationKt.emailSupportsAttachments;
import org.acra.sender.HttpSender;
public class AcraConfiguration {
public static CoreConfigurationBuilder getConfig(Context context) {
@ -15,17 +14,14 @@ public class AcraConfiguration {
.setBuildConfigClass(BuildConfig.class)
.setLogcatArguments("-t", "500", "-v", "time")
.setReportFormat(StringFormat.JSON);
builder.getPluginConfigurationBuilder(MailSenderConfigurationBuilder.class)
.setMailTo("reports@etesync.com")
.setResSubject(R.string.crash_email_subject)
.setReportFileName("ACRA-report.stacktrace.json")
.setReportAsFile(emailSupportsAttachments(context))
builder.getPluginConfigurationBuilder(HttpSenderConfigurationBuilder.class)
.setUri(Constants.crashReportingUrl)
.setHttpMethod(HttpSender.Method.POST)
.setEnabled(true);
builder.getPluginConfigurationBuilder(NotificationConfigurationBuilder.class)
builder.getPluginConfigurationBuilder(DialogConfigurationBuilder.class)
.setResTitle(R.string.crash_title)
.setResText(R.string.crash_message)
.setResChannelName(R.string.notification_channel_crash_reports)
.setSendOnClick(true)
.setResCommentPrompt(R.string.crash_email_body)
.setEnabled(true);
return builder;

@ -35,6 +35,7 @@ public class Constants {
public static final Uri faqUri = webUri.buildUpon().appendEncodedPath("faq/").build();
public static final Uri helpUri = webUri.buildUpon().appendEncodedPath("user-guide/android/").build();
public static final Uri forgotPassword = faqUri.buildUpon().fragment("forgot-password").build();
public static final String crashReportingUrl = "https://www.etesync.com/crash/android-syncadapter/report/";
public static final Uri serviceUrl = Uri.parse((DEBUG_REMOTE_URL == null) ? "https://api.etesync.com/" : DEBUG_REMOTE_URL);
public static final String etebaseServiceUrl = (DEBUG_REMOTE_URL == null) ? "https://api.etebase.com/partner/etesync/" : DEBUG_REMOTE_URL;

@ -15,15 +15,6 @@ import java.io.IOException
import java.text.SimpleDateFormat
import java.util.*
fun emailSupportsAttachments(context: Context): Boolean {
return !arrayOf(
"ch.protonmail.android",
"de.tutao.tutanota"
).any{
packageInstalled(context, it)
}
}
class EventEmailInvitation constructor(val context: Context, val account: Account) {
fun createIntent(event: Event, icsContent: String): Intent? {
val intent = Intent(Intent.ACTION_SEND)

@ -38,7 +38,6 @@
<!-- Crash -->
<string name="crash_title">EteSync has crashed!</string>
<string name="crash_message">Please send stack trace to developers.</string>
<string name="crash_email_subject">EteSync Debug Info</string>
<string name="crash_email_body">If possible, please include any other relevant information such as what you did to trigger this error.</string>
<!-- tourguide -->

Loading…
Cancel
Save