diff --git a/sentry-android-navigation3/api/sentry-android-navigation3.api b/sentry-android-navigation3/api/sentry-android-navigation3.api index be90eab5cf..4ef05794fe 100644 --- a/sentry-android-navigation3/api/sentry-android-navigation3.api +++ b/sentry-android-navigation3/api/sentry-android-navigation3.api @@ -6,3 +6,45 @@ public final class io/sentry/compose/navigation3/BuildConfig { public fun ()V } +public abstract interface class io/sentry/compose/navigation3/RouteArgumentsExtractor { + public abstract fun extract (Ljava/lang/Object;)Ljava/util/Map; +} + +public abstract interface class io/sentry/compose/navigation3/RouteNameExtractor { + public abstract fun extract (Ljava/lang/Object;)Ljava/lang/String; +} + +public final class io/sentry/compose/navigation3/SentryNavEffectKt { + public static final fun SentryNavEffect (Ljava/util/List;Lio/sentry/compose/navigation3/RouteNameExtractor;Lio/sentry/compose/navigation3/RouteArgumentsExtractor;Lio/sentry/compose/navigation3/SentryNavOptions;Landroidx/compose/runtime/Composer;II)V +} + +public final class io/sentry/compose/navigation3/SentryNavOptions { + public static final field $stable I + public synthetic fun (ZZZILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun equals (Ljava/lang/Object;)Z + public final fun getCaptureBackStack ()Z + public final fun getEnableNavigationBreadcrumbs ()Z + public final fun getEnableNavigationTransactions ()Z + public final fun getMaxCapturedBackStackEntries ()I + public fun hashCode ()I +} + +public final class io/sentry/compose/navigation3/SentryNavOptions$Builder { + public static final field $stable I + public fun ()V + public final fun build ()Lio/sentry/compose/navigation3/SentryNavOptions; + public final fun getCaptureBackStack ()Z + public final fun getEnableNavigationBreadcrumbs ()Z + public final fun getEnableNavigationTransactions ()Z + public final fun getMaxCapturedBackStackEntries ()I + public final fun setCaptureBackStack (Z)V + public final fun setEnableNavigationBreadcrumbs (Z)V + public final fun setEnableNavigationTransactions (Z)V + public final fun setMaxCapturedBackStackEntries (I)V +} + +public final class io/sentry/compose/navigation3/SentryNavOptionsKt { + public static final fun SentryNavOptions (Lkotlin/jvm/functions/Function1;)Lio/sentry/compose/navigation3/SentryNavOptions; + public static synthetic fun SentryNavOptions$default (Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lio/sentry/compose/navigation3/SentryNavOptions; +} + diff --git a/sentry-android-navigation3/src/main/kotlin/io/sentry/compose/navigation3/RouteExtractors.kt b/sentry-android-navigation3/src/main/kotlin/io/sentry/compose/navigation3/RouteExtractors.kt index deac06f2ea..b82c41b405 100644 --- a/sentry-android-navigation3/src/main/kotlin/io/sentry/compose/navigation3/RouteExtractors.kt +++ b/sentry-android-navigation3/src/main/kotlin/io/sentry/compose/navigation3/RouteExtractors.kt @@ -47,8 +47,9 @@ import org.jetbrains.annotations.ApiStatus * [RouteArgumentsExtractor]. */ @ApiStatus.Experimental -internal fun interface RouteNameExtractor { - fun extract(backStackEntry: T): String +@ApiStatus.Internal +public fun interface RouteNameExtractor { + public fun extract(backStackEntry: T): String } /** @@ -110,8 +111,9 @@ internal fun interface RouteNameExtractor { * ``` */ @ApiStatus.Experimental -internal fun interface RouteArgumentsExtractor { - fun extract(backStackEntry: T): Map +@ApiStatus.Internal +public fun interface RouteArgumentsExtractor { + public fun extract(backStackEntry: T): Map } /** diff --git a/sentry-android-navigation3/src/main/kotlin/io/sentry/compose/navigation3/SentryNavEffect.kt b/sentry-android-navigation3/src/main/kotlin/io/sentry/compose/navigation3/SentryNavEffect.kt index 5e5261f8ba..40cd98d8d9 100644 --- a/sentry-android-navigation3/src/main/kotlin/io/sentry/compose/navigation3/SentryNavEffect.kt +++ b/sentry-android-navigation3/src/main/kotlin/io/sentry/compose/navigation3/SentryNavEffect.kt @@ -71,9 +71,10 @@ import org.jetbrains.annotations.ApiStatus * @param options The kinds of navigation info this effect should record. */ @ApiStatus.Experimental +@ApiStatus.Internal @Composable @Suppress("FunctionNaming") -internal fun SentryNavEffect( +public fun SentryNavEffect( backStack: List, nameExtractor: RouteNameExtractor, argumentsExtractor: RouteArgumentsExtractor? = null, diff --git a/sentry-android-navigation3/src/main/kotlin/io/sentry/compose/navigation3/SentryNavOptions.kt b/sentry-android-navigation3/src/main/kotlin/io/sentry/compose/navigation3/SentryNavOptions.kt index d1598fedb8..f351464fa5 100644 --- a/sentry-android-navigation3/src/main/kotlin/io/sentry/compose/navigation3/SentryNavOptions.kt +++ b/sentry-android-navigation3/src/main/kotlin/io/sentry/compose/navigation3/SentryNavOptions.kt @@ -19,13 +19,14 @@ private const val DEFAULT_MAX_CAPTURED_BACK_STACK_ENTRIES = 10 * ``` */ @ApiStatus.Experimental +@ApiStatus.Internal @Immutable -internal class SentryNavOptions +public class SentryNavOptions private constructor( - val enableNavigationBreadcrumbs: Boolean, - val enableNavigationTransactions: Boolean, - val captureBackStack: Boolean, - val maxCapturedBackStackEntries: Int, + public val enableNavigationBreadcrumbs: Boolean, + public val enableNavigationTransactions: Boolean, + public val captureBackStack: Boolean, + public val maxCapturedBackStackEntries: Int, ) { init { @@ -41,26 +42,26 @@ private constructor( * Lets us keep the resulting instance [Immutable] while preserving binary compatibility, should * new properties be added in the future. */ - class Builder { + public class Builder { /** * Whether navigation should produce Sentry breadcrumbs. If `true`, a new nav destination * generates a breadcrumb like `from=/Home` and `to=/Profile`. */ - var enableNavigationBreadcrumbs: Boolean = true + public var enableNavigationBreadcrumbs: Boolean = true /** * Whether navigation should start a Sentry transaction. If `true`, navigating from `/Home` to * `/Profile` starts a `/Profile` transaction and finishes the current `/Home` transaction. */ - var enableNavigationTransactions: Boolean = true + public var enableNavigationTransactions: Boolean = true /** * Whether Sentry should record back stack information for inclusion with crashes, errors, and * other captured events. If `true`, a stack like `/Home -> /Profile` is recorded alongside the * event, ordered with the current/top entry first. */ - var captureBackStack: Boolean = true + public var captureBackStack: Boolean = true /** * Maximum number of entries Sentry should record per captured back stack (starting with the @@ -70,9 +71,9 @@ private constructor( * whenever your back stack changes. Keep name and argument extractors lightweight, and reduce * the max captured count if extractor work is unusually expensive. */ - var maxCapturedBackStackEntries: Int = DEFAULT_MAX_CAPTURED_BACK_STACK_ENTRIES + public var maxCapturedBackStackEntries: Int = DEFAULT_MAX_CAPTURED_BACK_STACK_ENTRIES - fun build(): SentryNavOptions = + public fun build(): SentryNavOptions = SentryNavOptions( enableNavigationBreadcrumbs = enableNavigationBreadcrumbs, enableNavigationTransactions = enableNavigationTransactions, @@ -100,6 +101,6 @@ private constructor( /** Creates [SentryNavOptions]. Optionally configure it via [configure]. */ @ApiStatus.Experimental -internal fun SentryNavOptions( - configure: SentryNavOptions.Builder.() -> Unit = {} -): SentryNavOptions = SentryNavOptions.Builder().apply(configure).build() +@ApiStatus.Internal +public fun SentryNavOptions(configure: SentryNavOptions.Builder.() -> Unit = {}): SentryNavOptions = + SentryNavOptions.Builder().apply(configure).build()