From 406541f9ef37d1157a872fc931e83269a929e489 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 28 Oct 2019 18:46:53 +0100 Subject: [PATCH] Revert "Updated Bugsnag" This reverts commit d281e77a4805e0da9da56d331d4233df03970b53. --- app/build.gradle | 2 +- app/src/main/java/eu/faircode/email/Log.java | 75 +++++++++++--------- 2 files changed, 41 insertions(+), 36 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 868514112d..21b3043491 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -198,7 +198,7 @@ dependencies { def openpgp_version = "12.0" def requery_version = "3.29.0" def badge_version = "1.1.22" - def bugsnag_version = "4.21.1" + def bugsnag_version = "4.17.2" def biweekly_version = "0.6.3" def photoview_version = "2.3.0" def relinker_version = "1.3.1" diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java index b718b9a5b0..40cfb77d61 100644 --- a/app/src/main/java/eu/faircode/email/Log.java +++ b/app/src/main/java/eu/faircode/email/Log.java @@ -45,6 +45,7 @@ import androidx.annotation.NonNull; import androidx.preference.PreferenceManager; import com.bugsnag.android.BeforeNotify; +import com.bugsnag.android.BeforeSend; import com.bugsnag.android.BreadcrumbType; import com.bugsnag.android.Bugsnag; import com.bugsnag.android.Callback; @@ -211,46 +212,15 @@ public class Log { final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - Bugsnag.init(context, config); - - Client client = Bugsnag.getClient(); - - try { - Log.i("Disabling orientation listener"); - Field fOrientationListener = Client.class.getDeclaredField("orientationListener"); - fOrientationListener.setAccessible(true); - OrientationEventListener orientationListener = (OrientationEventListener) fOrientationListener.get(client); - orientationListener.disable(); - Log.i("Disabled orientation listener"); - } catch (Throwable ex) { - Log.e(ex); - } - - String uuid = prefs.getString("uuid", null); - if (uuid == null) { - uuid = UUID.randomUUID().toString(); - prefs.edit().putString("uuid", uuid).apply(); - } - Log.i("uuid=" + uuid); - client.setUserId(uuid); - - if (prefs.getBoolean("crash_reports", false)) - Bugsnag.startSession(); - - final String installer = context.getPackageManager().getInstallerPackageName(BuildConfig.APPLICATION_ID); - final boolean fingerprint = Helper.hasValidFingerprint(context); - - Bugsnag.beforeNotify(new BeforeNotify() { + config.beforeSend(new BeforeSend() { @Override - public boolean run(@NonNull Error error) { + public boolean run(@NonNull Report report) { // opt-in boolean crash_reports = prefs.getBoolean("crash_reports", false); if (!crash_reports) return false; - Throwable ex = error.getException().getCause(); - if (ex == null) - return true; + Throwable ex = report.getError().getException(); if (ex instanceof MessagingException && (ex.getCause() instanceof IOException || @@ -286,6 +256,42 @@ public class Log { if (count > MAX_CRASH_REPORTS) return false; + return true; + } + }); + + Bugsnag.init(context, config); + + Client client = Bugsnag.getClient(); + + try { + Log.i("Disabling orientation listener"); + Field fOrientationListener = Client.class.getDeclaredField("orientationListener"); + fOrientationListener.setAccessible(true); + OrientationEventListener orientationListener = (OrientationEventListener) fOrientationListener.get(client); + orientationListener.disable(); + Log.i("Disabled orientation listener"); + } catch (Throwable ex) { + Log.e(ex); + } + + String uuid = prefs.getString("uuid", null); + if (uuid == null) { + uuid = UUID.randomUUID().toString(); + prefs.edit().putString("uuid", uuid).apply(); + } + Log.i("uuid=" + uuid); + client.setUserId(uuid); + + if (prefs.getBoolean("crash_reports", false)) + Bugsnag.startSession(); + + final String installer = context.getPackageManager().getInstallerPackageName(BuildConfig.APPLICATION_ID); + final boolean fingerprint = Helper.hasValidFingerprint(context); + + Bugsnag.beforeNotify(new BeforeNotify() { + @Override + public boolean run(@NonNull Error error) { error.addToTab("extra", "installer", installer == null ? "-" : installer); error.addToTab("extra", "fingerprint", fingerprint); error.addToTab("extra", "thread", Thread.currentThread().getId()); @@ -294,7 +300,6 @@ public class Log { String theme = prefs.getString("theme", "light"); error.addToTab("extra", "theme", theme); error.addToTab("extra", "package", BuildConfig.APPLICATION_ID); - return true; } });