From 69df9efc5b6678371dfedcd0658f1f8a00a50869 Mon Sep 17 00:00:00 2001 From: Kevin Boulongne Date: Wed, 15 May 2024 09:53:02 +0200 Subject: [PATCH 1/2] Don't log NetworkException in Sentry --- .../main/java/com/infomaniak/mail/MainApplication.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/infomaniak/mail/MainApplication.kt b/app/src/main/java/com/infomaniak/mail/MainApplication.kt index 0bc8783841..b59cdee94e 100644 --- a/app/src/main/java/com/infomaniak/mail/MainApplication.kt +++ b/app/src/main/java/com/infomaniak/mail/MainApplication.kt @@ -167,8 +167,14 @@ open class MainApplication : Application(), ImageLoaderFactory, DefaultLifecycle SentryAndroid.init(this) { options: SentryAndroidOptions -> // Register the callback as an option options.beforeSend = SentryOptions.BeforeSendCallback { event: SentryEvent, _: Any? -> - // If the application is in debug mode, discard the events - if (!BuildConfig.DEBUG && localSettings.isSentryTrackingEnabled) event else null + val networkExceptionCount = event.exceptions?.count { it.type == "ApiController\$NetworkException" } ?: 0 + /** + * Reasons to discard Sentry events : + * - Application is in Debug mode + * - User deactivated Sentry tracking in DataManagement settings + * - The exception was a NetworkException, and we don't want to send them to Sentry + */ + if (!BuildConfig.DEBUG && localSettings.isSentryTrackingEnabled && networkExceptionCount == 0) event else null } options.addIntegration( FragmentLifecycleIntegration( From df56e577683af48c6cc3b83d3eb7894dbf270b13 Mon Sep 17 00:00:00 2001 From: Kevin Boulongne Date: Wed, 15 May 2024 10:53:55 +0200 Subject: [PATCH 2/2] =?UTF-8?q?Use=20`.any{=E2=80=A6}`=20instead=20of=20`.?= =?UTF-8?q?count{=E2=80=A6}=20=3D=3D=200`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/infomaniak/mail/MainApplication.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/infomaniak/mail/MainApplication.kt b/app/src/main/java/com/infomaniak/mail/MainApplication.kt index b59cdee94e..a4ac7e3f47 100644 --- a/app/src/main/java/com/infomaniak/mail/MainApplication.kt +++ b/app/src/main/java/com/infomaniak/mail/MainApplication.kt @@ -167,14 +167,14 @@ open class MainApplication : Application(), ImageLoaderFactory, DefaultLifecycle SentryAndroid.init(this) { options: SentryAndroidOptions -> // Register the callback as an option options.beforeSend = SentryOptions.BeforeSendCallback { event: SentryEvent, _: Any? -> - val networkExceptionCount = event.exceptions?.count { it.type == "ApiController\$NetworkException" } ?: 0 + val isNetworkException = event.exceptions?.any { it.type == "ApiController\$NetworkException" } ?: false /** * Reasons to discard Sentry events : * - Application is in Debug mode * - User deactivated Sentry tracking in DataManagement settings * - The exception was a NetworkException, and we don't want to send them to Sentry */ - if (!BuildConfig.DEBUG && localSettings.isSentryTrackingEnabled && networkExceptionCount == 0) event else null + if (!BuildConfig.DEBUG && localSettings.isSentryTrackingEnabled && !isNetworkException) event else null } options.addIntegration( FragmentLifecycleIntegration(