Skip to content

Commit 22ddc00

Browse files
committed
Replace IHub with IScopes in android integrations
1 parent ce615f4 commit 22ddc00

File tree

21 files changed

+170
-170
lines changed

21 files changed

+170
-170
lines changed

sentry-android-fragment/api/sentry-android-fragment.api

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public final class io/sentry/android/fragment/FragmentLifecycleIntegration : and
1818
public fun onActivitySaveInstanceState (Landroid/app/Activity;Landroid/os/Bundle;)V
1919
public fun onActivityStarted (Landroid/app/Activity;)V
2020
public fun onActivityStopped (Landroid/app/Activity;)V
21-
public fun register (Lio/sentry/IHub;Lio/sentry/SentryOptions;)V
21+
public fun register (Lio/sentry/IScopes;Lio/sentry/SentryOptions;)V
2222
}
2323

2424
public final class io/sentry/android/fragment/FragmentLifecycleState : java/lang/Enum {
@@ -40,9 +40,9 @@ public final class io/sentry/android/fragment/FragmentLifecycleState : java/lang
4040
public final class io/sentry/android/fragment/SentryFragmentLifecycleCallbacks : androidx/fragment/app/FragmentManager$FragmentLifecycleCallbacks {
4141
public static final field Companion Lio/sentry/android/fragment/SentryFragmentLifecycleCallbacks$Companion;
4242
public static final field FRAGMENT_LOAD_OP Ljava/lang/String;
43-
public fun <init> (Lio/sentry/IHub;Ljava/util/Set;Z)V
44-
public synthetic fun <init> (Lio/sentry/IHub;Ljava/util/Set;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
45-
public fun <init> (Lio/sentry/IHub;ZZ)V
43+
public fun <init> (Lio/sentry/IScopes;Ljava/util/Set;Z)V
44+
public synthetic fun <init> (Lio/sentry/IScopes;Ljava/util/Set;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
45+
public fun <init> (Lio/sentry/IScopes;ZZ)V
4646
public fun <init> (ZZ)V
4747
public synthetic fun <init> (ZZILkotlin/jvm/internal/DefaultConstructorMarker;)V
4848
public final fun getEnableAutoFragmentLifecycleTracing ()Z

sentry-android-fragment/src/main/java/io/sentry/android/fragment/FragmentLifecycleIntegration.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import android.app.Application
55
import android.app.Application.ActivityLifecycleCallbacks
66
import android.os.Bundle
77
import androidx.fragment.app.FragmentActivity
8-
import io.sentry.IHub
8+
import io.sentry.IScopes
99
import io.sentry.Integration
1010
import io.sentry.SentryIntegrationPackageStorage
1111
import io.sentry.SentryLevel.DEBUG
@@ -40,11 +40,11 @@ class FragmentLifecycleIntegration(
4040
enableAutoFragmentLifecycleTracing = enableAutoFragmentLifecycleTracing
4141
)
4242

43-
private lateinit var hub: IHub
43+
private lateinit var scopes: IScopes
4444
private lateinit var options: SentryOptions
4545

46-
override fun register(hub: IHub, options: SentryOptions) {
47-
this.hub = hub
46+
override fun register(scopes: IScopes, options: SentryOptions) {
47+
this.scopes = scopes
4848
this.options = options
4949

5050
application.registerActivityLifecycleCallbacks(this)
@@ -66,7 +66,7 @@ class FragmentLifecycleIntegration(
6666
?.supportFragmentManager
6767
?.registerFragmentLifecycleCallbacks(
6868
SentryFragmentLifecycleCallbacks(
69-
hub = hub,
69+
scopes = scopes,
7070
filterFragmentLifecycleBreadcrumbs = filterFragmentLifecycleBreadcrumbs,
7171
enableAutoFragmentLifecycleTracing = enableAutoFragmentLifecycleTracing
7272
),

sentry-android-fragment/src/main/java/io/sentry/android/fragment/SentryFragmentLifecycleCallbacks.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import androidx.fragment.app.FragmentManager
88
import androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks
99
import io.sentry.Breadcrumb
1010
import io.sentry.Hint
11-
import io.sentry.HubAdapter
12-
import io.sentry.IHub
11+
import io.sentry.IScopes
1312
import io.sentry.ISpan
13+
import io.sentry.ScopesAdapter
1414
import io.sentry.SentryLevel.INFO
1515
import io.sentry.SpanStatus
1616
import io.sentry.TypeCheckHint.ANDROID_FRAGMENT
@@ -20,17 +20,17 @@ private const val TRACE_ORIGIN = "auto.ui.fragment"
2020

2121
@Suppress("TooManyFunctions")
2222
class SentryFragmentLifecycleCallbacks(
23-
private val hub: IHub = HubAdapter.getInstance(),
23+
private val scopes: IScopes = ScopesAdapter.getInstance(),
2424
val filterFragmentLifecycleBreadcrumbs: Set<FragmentLifecycleState>,
2525
val enableAutoFragmentLifecycleTracing: Boolean
2626
) : FragmentLifecycleCallbacks() {
2727

2828
constructor(
29-
hub: IHub,
29+
scopes: IScopes,
3030
enableFragmentLifecycleBreadcrumbs: Boolean,
3131
enableAutoFragmentLifecycleTracing: Boolean
3232
) : this(
33-
hub = hub,
33+
scopes = scopes,
3434
filterFragmentLifecycleBreadcrumbs = FragmentLifecycleState.values().toSet()
3535
.takeIf { enableFragmentLifecycleBreadcrumbs }
3636
.orEmpty(),
@@ -41,14 +41,14 @@ class SentryFragmentLifecycleCallbacks(
4141
enableFragmentLifecycleBreadcrumbs: Boolean = true,
4242
enableAutoFragmentLifecycleTracing: Boolean = false
4343
) : this(
44-
hub = HubAdapter.getInstance(),
44+
scopes = ScopesAdapter.getInstance(),
4545
filterFragmentLifecycleBreadcrumbs = FragmentLifecycleState.values().toSet()
4646
.takeIf { enableFragmentLifecycleBreadcrumbs }
4747
.orEmpty(),
4848
enableAutoFragmentLifecycleTracing = enableAutoFragmentLifecycleTracing
4949
)
5050

51-
private val isPerformanceEnabled get() = hub.options.isTracingEnabled && enableAutoFragmentLifecycleTracing
51+
private val isPerformanceEnabled get() = scopes.options.isTracingEnabled && enableAutoFragmentLifecycleTracing
5252

5353
private val fragmentsWithOngoingTransactions = WeakHashMap<Fragment, ISpan>()
5454

@@ -141,7 +141,7 @@ class SentryFragmentLifecycleCallbacks(
141141
val hint = Hint()
142142
.also { it.set(ANDROID_FRAGMENT, fragment) }
143143

144-
hub.addBreadcrumb(breadcrumb, hint)
144+
scopes.addBreadcrumb(breadcrumb, hint)
145145
}
146146

147147
private fun getFragmentName(fragment: Fragment): String {
@@ -157,7 +157,7 @@ class SentryFragmentLifecycleCallbacks(
157157
}
158158

159159
var transaction: ISpan? = null
160-
hub.configureScope {
160+
scopes.configureScope {
161161
transaction = it.transaction
162162
}
163163

sentry-android-fragment/src/test/java/io/sentry/android/fragment/FragmentLifecycleIntegrationTest.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import android.app.Activity
44
import android.app.Application
55
import androidx.fragment.app.FragmentActivity
66
import androidx.fragment.app.FragmentManager
7-
import io.sentry.IHub
7+
import io.sentry.IScopes
88
import io.sentry.SentryOptions
99
import org.mockito.kotlin.check
1010
import org.mockito.kotlin.doReturn
@@ -24,14 +24,14 @@ class FragmentLifecycleIntegrationTest {
2424
val fragmentActivity = mock<FragmentActivity> {
2525
on { supportFragmentManager } doReturn fragmentManager
2626
}
27-
val hub = mock<IHub>()
27+
val scopes = mock<IScopes>()
2828
val options = SentryOptions()
2929

3030
fun getSut(
3131
enableFragmentLifecycleBreadcrumbs: Boolean = true,
3232
enableAutoFragmentLifecycleTracing: Boolean = false
3333
): FragmentLifecycleIntegration {
34-
whenever(hub.options).thenReturn(options)
34+
whenever(scopes.options).thenReturn(options)
3535
return FragmentLifecycleIntegration(
3636
application = application,
3737
enableFragmentLifecycleBreadcrumbs = enableFragmentLifecycleBreadcrumbs,
@@ -46,7 +46,7 @@ class FragmentLifecycleIntegrationTest {
4646
fun `When register, it should register activity lifecycle callbacks`() {
4747
val sut = fixture.getSut()
4848

49-
sut.register(fixture.hub, fixture.options)
49+
sut.register(fixture.scopes, fixture.options)
5050

5151
verify(fixture.application).registerActivityLifecycleCallbacks(sut)
5252
}
@@ -55,7 +55,7 @@ class FragmentLifecycleIntegrationTest {
5555
fun `When close, it should unregister lifecycle callbacks`() {
5656
val sut = fixture.getSut()
5757

58-
sut.register(fixture.hub, fixture.options)
58+
sut.register(fixture.scopes, fixture.options)
5959
sut.close()
6060

6161
verify(fixture.application).unregisterActivityLifecycleCallbacks(sut)
@@ -69,7 +69,7 @@ class FragmentLifecycleIntegrationTest {
6969
on { supportFragmentManager } doReturn fragmentManager
7070
}
7171

72-
sut.register(fixture.hub, fixture.options)
72+
sut.register(fixture.scopes, fixture.options)
7373
sut.onActivityCreated(fragmentActivity, savedInstanceState = null)
7474

7575
verify(fragmentManager).registerFragmentLifecycleCallbacks(
@@ -84,7 +84,7 @@ class FragmentLifecycleIntegrationTest {
8484
fun `When FragmentActivity is created, it should register fragment lifecycle callbacks with passed config`() {
8585
val sut = fixture.getSut(enableFragmentLifecycleBreadcrumbs = false, enableAutoFragmentLifecycleTracing = true)
8686

87-
sut.register(fixture.hub, fixture.options)
87+
sut.register(fixture.scopes, fixture.options)
8888
sut.onActivityCreated(fixture.fragmentActivity, savedInstanceState = null)
8989

9090
verify(fixture.fragmentManager).registerFragmentLifecycleCallbacks(
@@ -102,7 +102,7 @@ class FragmentLifecycleIntegrationTest {
102102
val sut = fixture.getSut()
103103
val activity = mock<Activity>()
104104

105-
sut.register(fixture.hub, fixture.options)
105+
sut.register(fixture.scopes, fixture.options)
106106
sut.onActivityCreated(activity, savedInstanceState = null)
107107
}
108108

sentry-android-fragment/src/test/java/io/sentry/android/fragment/SentryFragmentLifecycleCallbacksTest.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import android.os.Bundle
55
import androidx.fragment.app.Fragment
66
import androidx.fragment.app.FragmentManager
77
import io.sentry.Breadcrumb
8-
import io.sentry.Hub
98
import io.sentry.IScope
9+
import io.sentry.IScopes
1010
import io.sentry.ISpan
1111
import io.sentry.ITransaction
1212
import io.sentry.ScopeCallback
@@ -32,7 +32,7 @@ class SentryFragmentLifecycleCallbacksTest {
3232

3333
private class Fixture {
3434
val fragmentManager = mock<FragmentManager>()
35-
val hub = mock<Hub>()
35+
val scopes = mock<IScopes>()
3636
val fragment = mock<Fragment>()
3737
val context = mock<Context>()
3838
val scope = mock<IScope>()
@@ -45,7 +45,7 @@ class SentryFragmentLifecycleCallbacksTest {
4545
tracesSampleRate: Double? = 1.0,
4646
isAdded: Boolean = true
4747
): SentryFragmentLifecycleCallbacks {
48-
whenever(hub.options).thenReturn(
48+
whenever(scopes.options).thenReturn(
4949
SentryOptions().apply {
5050
setTracesSampleRate(tracesSampleRate)
5151
}
@@ -55,12 +55,12 @@ class SentryFragmentLifecycleCallbacksTest {
5555
)
5656
whenever(transaction.startChild(any(), any())).thenReturn(span)
5757
whenever(scope.transaction).thenReturn(transaction)
58-
whenever(hub.configureScope(any())).thenAnswer {
58+
whenever(scopes.configureScope(any())).thenAnswer {
5959
(it.arguments[0] as ScopeCallback).run(scope)
6060
}
6161
whenever(fragment.isAdded).thenReturn(isAdded)
6262
return SentryFragmentLifecycleCallbacks(
63-
hub = hub,
63+
scopes = scopes,
6464
filterFragmentLifecycleBreadcrumbs = loggedFragmentLifecycleStates,
6565
enableAutoFragmentLifecycleTracing = enableAutoFragmentLifecycleTracing
6666
)
@@ -272,7 +272,7 @@ class SentryFragmentLifecycleCallbacksTest {
272272
}
273273

274274
private fun verifyBreadcrumbAdded(expectedState: String) {
275-
verify(fixture.hub).addBreadcrumb(
275+
verify(fixture.scopes).addBreadcrumb(
276276
check { breadcrumb: Breadcrumb ->
277277
assertEquals("ui.fragment.lifecycle", breadcrumb.category)
278278
assertEquals("navigation", breadcrumb.type)
@@ -285,6 +285,6 @@ class SentryFragmentLifecycleCallbacksTest {
285285
}
286286

287287
private fun verifyBreadcrumbAddedCount(count: Int) {
288-
verify(fixture.hub, times(count)).addBreadcrumb(any<Breadcrumb>(), anyOrNull())
288+
verify(fixture.scopes, times(count)).addBreadcrumb(any<Breadcrumb>(), anyOrNull())
289289
}
290290
}

sentry-android-integration-tests/sentry-uitest-android/src/androidTest/java/io/sentry/uitest/android/mockservers/RelayAsserter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class RelayAsserter(
9393
/** Request parsed as envelope. */
9494
val envelope: SentryEnvelope? by lazy {
9595
try {
96-
EnvelopeReader(Sentry.getCurrentHub().options.serializer)
96+
EnvelopeReader(Sentry.getCurrentScopes().options.serializer)
9797
.read(GZIPInputStream(request.body.inputStream()))
9898
} catch (e: IOException) {
9999
null

sentry-android-navigation/api/sentry-android-navigation.api

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ public final class io/sentry/android/navigation/SentryNavigationListener : andro
1010
public static final field Companion Lio/sentry/android/navigation/SentryNavigationListener$Companion;
1111
public static final field NAVIGATION_OP Ljava/lang/String;
1212
public fun <init> ()V
13-
public fun <init> (Lio/sentry/IHub;)V
14-
public fun <init> (Lio/sentry/IHub;Z)V
15-
public fun <init> (Lio/sentry/IHub;ZZ)V
16-
public fun <init> (Lio/sentry/IHub;ZZLjava/lang/String;)V
17-
public synthetic fun <init> (Lio/sentry/IHub;ZZLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
13+
public fun <init> (Lio/sentry/IScopes;)V
14+
public fun <init> (Lio/sentry/IScopes;Z)V
15+
public fun <init> (Lio/sentry/IScopes;ZZ)V
16+
public fun <init> (Lio/sentry/IScopes;ZZLjava/lang/String;)V
17+
public synthetic fun <init> (Lio/sentry/IScopes;ZZLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
1818
public fun onDestinationChanged (Landroidx/navigation/NavController;Landroidx/navigation/NavDestination;Landroid/os/Bundle;)V
1919
}
2020

sentry-android-navigation/src/main/java/io/sentry/android/navigation/SentryNavigationListener.kt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import androidx.navigation.NavController
66
import androidx.navigation.NavDestination
77
import io.sentry.Breadcrumb
88
import io.sentry.Hint
9-
import io.sentry.HubAdapter
10-
import io.sentry.IHub
9+
import io.sentry.IScopes
1110
import io.sentry.ITransaction
11+
import io.sentry.ScopesAdapter
1212
import io.sentry.SentryIntegrationPackageStorage
1313
import io.sentry.SentryLevel.DEBUG
1414
import io.sentry.SentryLevel.INFO
@@ -34,7 +34,7 @@ private const val TRACE_ORIGIN = "auto.navigation"
3434
* with [SentryOptions.idleTimeout] for navigation events.
3535
*/
3636
class SentryNavigationListener @JvmOverloads constructor(
37-
private val hub: IHub = HubAdapter.getInstance(),
37+
private val scopes: IScopes = ScopesAdapter.getInstance(),
3838
private val enableNavigationBreadcrumbs: Boolean = true,
3939
private val enableNavigationTracing: Boolean = true,
4040
private val traceOriginAppendix: String? = null
@@ -43,7 +43,7 @@ class SentryNavigationListener @JvmOverloads constructor(
4343
private var previousDestinationRef: WeakReference<NavDestination>? = null
4444
private var previousArgs: Bundle? = null
4545

46-
private val isPerformanceEnabled get() = hub.options.isTracingEnabled && enableNavigationTracing
46+
private val isPerformanceEnabled get() = scopes.options.isTracingEnabled && enableNavigationTracing
4747

4848
private var activeTransaction: ITransaction? = null
4949

@@ -91,7 +91,7 @@ class SentryNavigationListener @JvmOverloads constructor(
9191
}
9292
val hint = Hint()
9393
hint.set(TypeCheckHint.ANDROID_NAV_DESTINATION, destination)
94-
hub.addBreadcrumb(breadcrumb, hint)
94+
scopes.addBreadcrumb(breadcrumb, hint)
9595
}
9696

9797
private fun startTracing(
@@ -100,7 +100,7 @@ class SentryNavigationListener @JvmOverloads constructor(
100100
arguments: Map<String, Any?>
101101
) {
102102
if (!isPerformanceEnabled) {
103-
TracingUtils.startNewTrace(hub)
103+
TracingUtils.startNewTrace(scopes)
104104
return
105105
}
106106

@@ -111,7 +111,7 @@ class SentryNavigationListener @JvmOverloads constructor(
111111

112112
if (destination.navigatorName == "activity") {
113113
// we do not trace navigation between activities to avoid clashing with activity lifecycle tracing
114-
hub.options.logger.log(
114+
scopes.options.logger.log(
115115
DEBUG,
116116
"Navigating to activity destination, no transaction captured."
117117
)
@@ -122,7 +122,7 @@ class SentryNavigationListener @JvmOverloads constructor(
122122
var name = destination.route ?: try {
123123
controller.context.resources.getResourceEntryName(destination.id)
124124
} catch (e: NotFoundException) {
125-
hub.options.logger.log(
125+
scopes.options.logger.log(
126126
DEBUG,
127127
"Destination id cannot be retrieved from Resources, no transaction captured."
128128
)
@@ -134,12 +134,12 @@ class SentryNavigationListener @JvmOverloads constructor(
134134

135135
val transactionOptions = TransactionOptions().also {
136136
it.isWaitForChildren = true
137-
it.idleTimeout = hub.options.idleTimeout
137+
it.idleTimeout = scopes.options.idleTimeout
138138
it.deadlineTimeout = TransactionOptions.DEFAULT_DEADLINE_TIMEOUT_AUTO_TRANSACTION
139139
it.isTrimEnd = true
140140
}
141141

142-
val transaction = hub.startTransaction(
142+
val transaction = scopes.startTransaction(
143143
TransactionContext(name, TransactionNameSource.ROUTE, NAVIGATION_OP),
144144
transactionOptions
145145
)
@@ -151,7 +151,7 @@ class SentryNavigationListener @JvmOverloads constructor(
151151
if (arguments.isNotEmpty()) {
152152
transaction.setData("arguments", arguments)
153153
}
154-
hub.configureScope { scope ->
154+
scopes.configureScope { scope ->
155155
scope.withTransaction { tx ->
156156
if (tx == null) {
157157
scope.transaction = transaction
@@ -166,7 +166,7 @@ class SentryNavigationListener @JvmOverloads constructor(
166166
activeTransaction?.finish(status)
167167

168168
// clear transaction from scope so others can bind to it
169-
hub.configureScope { scope ->
169+
scopes.configureScope { scope ->
170170
scope.withTransaction { tx ->
171171
if (tx == activeTransaction) {
172172
scope.clearTransaction()

0 commit comments

Comments
 (0)