1616
1717package com.duckduckgo.app.global
1818
19- import android.app.Activity
2019import android.app.Application
21- import android.app.Service
2220import android.os.Build
23- import androidx.fragment.app.Fragment
2421import androidx.lifecycle.Lifecycle
2522import androidx.lifecycle.LifecycleObserver
2623import androidx.lifecycle.OnLifecycleEvent
@@ -40,8 +37,8 @@ import com.duckduckgo.app.global.rating.AppEnjoymentLifecycleObserver
4037import com.duckduckgo.app.global.shortcut.AppShortcutCreator
4138import com.duckduckgo.app.httpsupgrade.HttpsUpgrader
4239import com.duckduckgo.app.job.AppConfigurationSyncer
43- import com.duckduckgo.app.notification.NotificationRegistrar
4440import com.duckduckgo.app.notification.AndroidNotificationScheduler
41+ import com.duckduckgo.app.notification.NotificationRegistrar
4542import com.duckduckgo.app.referral.AppInstallationReferrerStateListener
4643import com.duckduckgo.app.settings.db.SettingsDataStore
4744import com.duckduckgo.app.statistics.AtbInitializer
@@ -59,6 +56,8 @@ import com.duckduckgo.app.usage.app.AppDaysUsedRecorder
5956import dagger.android.AndroidInjector
6057import dagger.android.DispatchingAndroidInjector
6158import dagger.android.HasAndroidInjector
59+ import io.reactivex.exceptions.UndeliverableException
60+ import io.reactivex.plugins.RxJavaPlugins
6261import io.reactivex.schedulers.Schedulers
6362import kotlinx.coroutines.GlobalScope
6463import kotlinx.coroutines.launch
@@ -196,6 +195,13 @@ open class DuckDuckGoApplication : HasAndroidInjector, Application(), LifecycleO
196195
197196 private fun configureUncaughtExceptionHandler () {
198197 Thread .setDefaultUncaughtExceptionHandler(alertingUncaughtExceptionHandler)
198+ RxJavaPlugins .setErrorHandler { throwable ->
199+ if (throwable is UndeliverableException ) {
200+ Timber .w(throwable, " An exception happened inside RxJava code but no subscriber was still around to handle it" )
201+ } else {
202+ alertingUncaughtExceptionHandler.uncaughtException(Thread .currentThread(), throwable)
203+ }
204+ }
199205 }
200206
201207 private fun recordInstallationTimestamp () {
0 commit comments