From 2a193a60ada8a0202e35a9964dfa5605700b6687 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 25 May 2017 15:16:00 +0200 Subject: [PATCH] improve error reporting --- .../habitica/HabiticaBaseApplication.java | 3 +++ .../habitica/helpers/RxErrorHandler.java | 25 +++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.java b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.java index b6c320a85..c0b3a4fe0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaBaseApplication.java @@ -132,6 +132,9 @@ public abstract class HabiticaBaseApplication extends MultiDexApplication { } } Fresco.initialize(this); + + RxErrorHandler.init(crashlyticsProxy); + checkIfNewVersion(); } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RxErrorHandler.java b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RxErrorHandler.java index 0486716a3..cbf0f9274 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RxErrorHandler.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RxErrorHandler.java @@ -2,21 +2,36 @@ package com.habitrpg.android.habitica.helpers; import android.util.Log; -import rx.android.BuildConfig; +import com.habitrpg.android.habitica.BuildConfig; +import com.habitrpg.android.habitica.proxy.CrashlyticsProxy; + import rx.functions.Action1; public class RxErrorHandler { + static private RxErrorHandler instance; + private CrashlyticsProxy crashlyticsProxy; + + public static void init(CrashlyticsProxy crashlyticsProxy) { + instance = new RxErrorHandler(); + instance.crashlyticsProxy = crashlyticsProxy; + } + public static Action1 handleEmptyError() { //Can't be turned into a lambda, because it then doesn't work for some reason. return new Action1() { @Override public void call(Throwable throwable) { - throwable.printStackTrace(); - if (BuildConfig.DEBUG) { - Log.e("ObservableError", Log.getStackTraceString(throwable)); - } + RxErrorHandler.reportError(throwable); } }; } + + private static void reportError(Throwable throwable) { + if (BuildConfig.DEBUG) { + Log.e("ObservableError", Log.getStackTraceString(throwable)); + } else { + instance.crashlyticsProxy.logException(throwable); + } + } }