From bcf7ca3ae4f6efe1bf0c69325f2188d675b43998 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 14 Dec 2019 17:01:27 +0100 Subject: [PATCH] Prevent crash --- app/src/main/java/eu/faircode/email/Log.java | 65 ++++++++++++++------ 1 file changed, 46 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java index e75126b549..27f90ff0b7 100644 --- a/app/src/main/java/eu/faircode/email/Log.java +++ b/app/src/main/java/eu/faircode/email/Log.java @@ -123,16 +123,19 @@ public class Log { } public static int e(String msg) { - if (BuildConfig.BETA_RELEASE) { - List ss = new ArrayList<>(Arrays.asList(new Throwable().getStackTrace())); - ss.remove(0); - Bugsnag.notify("Internal error", msg, ss.toArray(new StackTraceElement[0]), new Callback() { - @Override - public void beforeNotify(@NonNull Report report) { - report.getError().setSeverity(Severity.ERROR); - } - }); - } + if (BuildConfig.BETA_RELEASE) + try { + List ss = new ArrayList<>(Arrays.asList(new Throwable().getStackTrace())); + ss.remove(0); + Bugsnag.notify("Internal error", msg, ss.toArray(new StackTraceElement[0]), new Callback() { + @Override + public void beforeNotify(@NonNull Report report) { + report.getError().setSeverity(Severity.ERROR); + } + }); + } catch (Throwable ex) { + ex.printStackTrace(); + } return android.util.Log.e(TAG, msg); } @@ -142,37 +145,61 @@ public class Log { public static int w(Throwable ex) { if (BuildConfig.BETA_RELEASE) - Bugsnag.notify(ex, Severity.INFO); + try { + Bugsnag.notify(ex, Severity.INFO); + } catch (Throwable ex1) { + ex1.printStackTrace(); + } return android.util.Log.w(TAG, ex + "\n" + android.util.Log.getStackTraceString(ex)); } public static int e(Throwable ex) { if (BuildConfig.BETA_RELEASE) - Bugsnag.notify(ex, Severity.WARNING); + try { + Bugsnag.notify(ex, Severity.WARNING); + } catch (Throwable ex1) { + ex1.printStackTrace(); + } return android.util.Log.e(TAG, ex + "\n" + android.util.Log.getStackTraceString(ex)); } public static int w(String prefix, Throwable ex) { if (BuildConfig.BETA_RELEASE) - Bugsnag.notify(ex, Severity.INFO); + try { + Bugsnag.notify(ex, Severity.INFO); + } catch (Throwable ex1) { + ex1.printStackTrace(); + } return android.util.Log.w(TAG, prefix + " " + ex + "\n" + android.util.Log.getStackTraceString(ex)); } public static int e(String prefix, Throwable ex) { if (BuildConfig.BETA_RELEASE) - Bugsnag.notify(ex, Severity.WARNING); + try { + Bugsnag.notify(ex, Severity.WARNING); + } catch (Throwable ex1) { + ex1.printStackTrace(); + } return android.util.Log.e(TAG, prefix + " " + ex + "\n" + android.util.Log.getStackTraceString(ex)); } static void setCrashReporting(boolean enabled) { - if (enabled) - Bugsnag.startSession(); - else - Bugsnag.stopSession(); + try { + if (enabled) + Bugsnag.startSession(); + else + Bugsnag.stopSession(); + } catch (Throwable ex) { + ex.printStackTrace(); + } } static void breadcrumb(String name, Map crumb) { - Bugsnag.leaveBreadcrumb(name, BreadcrumbType.LOG, crumb); + try { + Bugsnag.leaveBreadcrumb(name, BreadcrumbType.LOG, crumb); + } catch (Throwable ex) { + ex.printStackTrace(); + } } static void setupBugsnag(Context context) {