From e57a97a787569b42466f18618b0548dc87a698fe Mon Sep 17 00:00:00 2001 From: Melody Horn Date: Mon, 8 Jun 2026 08:33:01 -0600 Subject: [PATCH] try just the sentry logging --- .../android/util/SharedStringLocalization.kt | 1 + iosApp/iosApp/Pages/More/MoreAction.swift | 9 ++++++++- .../Utils/Extensions/SharedStringLocalization.swift | 1 + .../kotlin/com/mbta/tid/mbta_app/AppSetup.kt | 4 ++++ .../com/mbta/tid/mbta_app/utils/SharedString.kt | 1 + .../mbta/tid/mbta_app/viewModel/MoreViewModel.kt | 13 +++++++++++++ 6 files changed, 28 insertions(+), 1 deletion(-) diff --git a/androidApp/src/main/java/com/mbta/tid/mbta_app/android/util/SharedStringLocalization.kt b/androidApp/src/main/java/com/mbta/tid/mbta_app/android/util/SharedStringLocalization.kt index 1bf038eabd..b469f24392 100644 --- a/androidApp/src/main/java/com/mbta/tid/mbta_app/android/util/SharedStringLocalization.kt +++ b/androidApp/src/main/java/com/mbta/tid/mbta_app/android/util/SharedStringLocalization.kt @@ -14,6 +14,7 @@ val SharedString.value: String SharedString.BetaSection -> stringResource(R.string.more_section_public_beta) SharedString.CommuterRailAndFerryTickets -> stringResource(R.string.resources_link_mticket) + SharedString.Crash -> "Crash" SharedString.DebugMode -> stringResource(R.string.feature_flag_debug_mode) SharedString.FareInformation -> stringResource(R.string.resources_link_fare_info) SharedString.FeatureFlagsSection -> stringResource(R.string.more_section_feature_flags) diff --git a/iosApp/iosApp/Pages/More/MoreAction.swift b/iosApp/iosApp/Pages/More/MoreAction.swift index a17417e1fe..2ef3da3744 100644 --- a/iosApp/iosApp/Pages/More/MoreAction.swift +++ b/iosApp/iosApp/Pages/More/MoreAction.swift @@ -6,6 +6,8 @@ // Copyright © 2026 MBTA. All rights reserved. // +import Sentry +import Shared import SwiftUI struct MoreAction: View { @@ -14,7 +16,12 @@ struct MoreAction: View { var callback: () -> Void var body: some View { - Button(action: callback) { + Button(action: { + Shared.Sentry.shared.captureMessage(message: "Sentry SDK from Swift via KMP works") + SentrySDK.addBreadcrumb(.init(level: .warning, category: "Huh")) + SentrySDK.capture(message: "Sentry SDK directly from Swift works") + callback() + }) { HStack(alignment: .center, spacing: 0) { Text(label) .foregroundStyle(Color.text) diff --git a/iosApp/iosApp/Utils/Extensions/SharedStringLocalization.swift b/iosApp/iosApp/Utils/Extensions/SharedStringLocalization.swift index d506fdbc43..3c7386dcd1 100644 --- a/iosApp/iosApp/Utils/Extensions/SharedStringLocalization.swift +++ b/iosApp/iosApp/Utils/Extensions/SharedStringLocalization.swift @@ -27,6 +27,7 @@ extension SharedString { "Commuter Rail and Ferry Tickets", comment: "Label for a More page link to the MBTA mTicket app" ) + case .crash: "Crash" case .debugMode: NSLocalizedString( "Debug Mode", diff --git a/shared/src/commonMain/kotlin/com/mbta/tid/mbta_app/AppSetup.kt b/shared/src/commonMain/kotlin/com/mbta/tid/mbta_app/AppSetup.kt index f87045bef0..f526505866 100644 --- a/shared/src/commonMain/kotlin/com/mbta/tid/mbta_app/AppSetup.kt +++ b/shared/src/commonMain/kotlin/com/mbta/tid/mbta_app/AppSetup.kt @@ -1,6 +1,7 @@ package com.mbta.tid.mbta_app import io.sentry.kotlin.multiplatform.Sentry +import io.sentry.kotlin.multiplatform.SentryLevel import io.sentry.kotlin.multiplatform.SentryOptions public fun initializeSentry(dsn: String, environment: String) { @@ -8,6 +9,9 @@ public fun initializeSentry(dsn: String, environment: String) { it.dsn = dsn it.environment = environment it.beforeBreadcrumb = { breadcrumb -> breadcrumb } + it.debug = true + it.diagnosticLevel = SentryLevel.DEBUG + it.logs.enabled = true } Sentry.init(configuration) } diff --git a/shared/src/commonMain/kotlin/com/mbta/tid/mbta_app/utils/SharedString.kt b/shared/src/commonMain/kotlin/com/mbta/tid/mbta_app/utils/SharedString.kt index 3fde36e96b..ad1f8ab5cf 100644 --- a/shared/src/commonMain/kotlin/com/mbta/tid/mbta_app/utils/SharedString.kt +++ b/shared/src/commonMain/kotlin/com/mbta/tid/mbta_app/utils/SharedString.kt @@ -4,6 +4,7 @@ public enum class SharedString { BetaEarlyAccessNote, BetaSection, CommuterRailAndFerryTickets, + Crash, DebugMode, FareInformation, FeatureFlagsSection, diff --git a/shared/src/commonMain/kotlin/com/mbta/tid/mbta_app/viewModel/MoreViewModel.kt b/shared/src/commonMain/kotlin/com/mbta/tid/mbta_app/viewModel/MoreViewModel.kt index e20e454f6a..990eb74a44 100644 --- a/shared/src/commonMain/kotlin/com/mbta/tid/mbta_app/viewModel/MoreViewModel.kt +++ b/shared/src/commonMain/kotlin/com/mbta/tid/mbta_app/viewModel/MoreViewModel.kt @@ -9,6 +9,9 @@ import com.mbta.tid.mbta_app.repositories.IOnboardingRepository import com.mbta.tid.mbta_app.repositories.ISubscriptionsRepository import com.mbta.tid.mbta_app.repositories.Settings import com.mbta.tid.mbta_app.utils.SharedString +import io.sentry.kotlin.multiplatform.Sentry +import io.sentry.kotlin.multiplatform.SentryLevel +import io.sentry.kotlin.multiplatform.protocol.Breadcrumb import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch @@ -113,11 +116,21 @@ public class MoreViewModel( MoreItem.Action( label = SharedString.ForceNotificationsBeta, action = { + Sentry.addBreadcrumb( + Breadcrumb(level = SentryLevel.WARNING, type = "Huh") + ) + Sentry.captureMessage("Sentry SDK directly from Kotlin works") CoroutineScope(coroutineDispatcher).launch { onboardingRepository.notificationsBetaResetAndForce() } }, ), + MoreItem.Action( + label = SharedString.Crash, + action = { + throw IllegalStateException("crashing from Kotlin to check Sentry") + }, + ), ), ), MoreSection(