From f7e0e30b65f0f67b0003546d1fb596e509716ed0 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Sun, 25 Oct 2020 15:24:50 +0200 Subject: [PATCH] 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. --- app/build.gradle | 6 +++--- .../syncadapter/AcraConfiguration.java | 20 ++++++++----------- .../com/etesync/syncadapter/Constants.java | 1 + .../syncadapter/utils/EventEmailInvitation.kt | 9 --------- app/src/main/res/values/strings.xml | 1 - 5 files changed, 12 insertions(+), 25 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 49266989..2b99ca17 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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" diff --git a/app/src/main/java/com/etesync/syncadapter/AcraConfiguration.java b/app/src/main/java/com/etesync/syncadapter/AcraConfiguration.java index 3d60b48b..e347fd5e 100644 --- a/app/src/main/java/com/etesync/syncadapter/AcraConfiguration.java +++ b/app/src/main/java/com/etesync/syncadapter/AcraConfiguration.java @@ -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; diff --git a/app/src/main/java/com/etesync/syncadapter/Constants.java b/app/src/main/java/com/etesync/syncadapter/Constants.java index d83541a0..fe078b58 100644 --- a/app/src/main/java/com/etesync/syncadapter/Constants.java +++ b/app/src/main/java/com/etesync/syncadapter/Constants.java @@ -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; diff --git a/app/src/main/java/com/etesync/syncadapter/utils/EventEmailInvitation.kt b/app/src/main/java/com/etesync/syncadapter/utils/EventEmailInvitation.kt index 358f0a8c..ada9718d 100644 --- a/app/src/main/java/com/etesync/syncadapter/utils/EventEmailInvitation.kt +++ b/app/src/main/java/com/etesync/syncadapter/utils/EventEmailInvitation.kt @@ -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) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 66c2f56e..25268495 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -38,7 +38,6 @@ EteSync has crashed! Please send stack trace to developers. - EteSync Debug Info If possible, please include any other relevant information such as what you did to trigger this error.