Add crash reporting via Crashlytics.
This commit is contained in:
parent
8331e8ff06
commit
5803a9dd71
|
@ -57,4 +57,9 @@ class AppModule {
|
|||
@Singleton
|
||||
@IntoSet
|
||||
fun provideFeedbackMixpanel(): FeedbackCoordinator.FeedbackObserver = FeedbackMixpanel()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
@IntoSet
|
||||
fun provideFeedbackCrashlytics(): FeedbackCoordinator.FeedbackObserver = FeedbackCrashlytics()
|
||||
}
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
package cash.z.ecc.android.feedback
|
||||
|
||||
import com.crashlytics.android.Crashlytics
|
||||
|
||||
class FeedbackCrashlytics : FeedbackCoordinator.FeedbackObserver {
|
||||
/**
|
||||
* Report non-fatal crashes because fatal ones already get reported by default.
|
||||
*/
|
||||
override fun onAction(action: Feedback.Action) {
|
||||
var exception: Throwable? = null
|
||||
exception = when (action) {
|
||||
is Feedback.Crash -> action.exception
|
||||
is Feedback.NonFatal -> action.exception
|
||||
is Report.Error.NonFatal.Reorg -> ReorgException(
|
||||
action.errorHeight,
|
||||
action.rewindHeight,
|
||||
action.toString()
|
||||
)
|
||||
else -> null
|
||||
}
|
||||
exception?.let { Crashlytics.logException(it) }
|
||||
}
|
||||
|
||||
private class ReorgException(errorHeight: Int, rewindHeight: Int, reorgMesssage: String) :
|
||||
Throwable(reorgMesssage)
|
||||
}
|
Loading…
Reference in New Issue