2323import io .sentry .SentryLevel ;
2424import io .sentry .SentryNanotimeDate ;
2525import io .sentry .SentryOptions ;
26+ import io .sentry .SpanOptions ;
2627import io .sentry .SpanStatus ;
2728import io .sentry .TracesSamplingDecision ;
2829import io .sentry .TransactionContext ;
@@ -224,6 +225,7 @@ private void startTracing(final @NotNull Activity activity) {
224225 }
225226 transactionOptions .setStartTimestamp (ttidStartTime );
226227 transactionOptions .setAppStartTransaction (appStartSamplingDecision != null );
228+ setSpanOrigin (transactionOptions );
227229
228230 // we can only bind to the scope if there's no running transaction
229231 ITransaction transaction =
@@ -234,7 +236,9 @@ private void startTracing(final @NotNull Activity activity) {
234236 UI_LOAD_OP ,
235237 appStartSamplingDecision ),
236238 transactionOptions );
237- setSpanOrigin (transaction );
239+
240+ final SpanOptions spanOptions = new SpanOptions ();
241+ setSpanOrigin (spanOptions );
238242
239243 // in case appStartTime isn't available, we don't create a span for it.
240244 if (!(firstActivityCreated || appStartTime == null || coldStart == null )) {
@@ -244,24 +248,30 @@ private void startTracing(final @NotNull Activity activity) {
244248 getAppStartOp (coldStart ),
245249 getAppStartDesc (coldStart ),
246250 appStartTime ,
247- Instrumenter .SENTRY );
248- setSpanOrigin ( appStartSpan );
251+ Instrumenter .SENTRY ,
252+ spanOptions );
249253
250254 // in case there's already an end time (e.g. due to deferred SDK init)
251255 // we can finish the app-start span
252256 finishAppStartSpan ();
253257 }
254258 final @ NotNull ISpan ttidSpan =
255259 transaction .startChild (
256- TTID_OP , getTtidDesc (activityName ), ttidStartTime , Instrumenter .SENTRY );
260+ TTID_OP ,
261+ getTtidDesc (activityName ),
262+ ttidStartTime ,
263+ Instrumenter .SENTRY ,
264+ spanOptions );
257265 ttidSpanMap .put (activity , ttidSpan );
258- setSpanOrigin (ttidSpan );
259266
260267 if (timeToFullDisplaySpanEnabled && fullyDisplayedReporter != null && options != null ) {
261268 final @ NotNull ISpan ttfdSpan =
262269 transaction .startChild (
263- TTFD_OP , getTtfdDesc (activityName ), ttidStartTime , Instrumenter .SENTRY );
264- setSpanOrigin (ttfdSpan );
270+ TTFD_OP ,
271+ getTtfdDesc (activityName ),
272+ ttidStartTime ,
273+ Instrumenter .SENTRY ,
274+ spanOptions );
265275 try {
266276 ttfdSpanMap .put (activity , ttfdSpan );
267277 ttfdAutoCloseFuture =
@@ -290,11 +300,8 @@ private void startTracing(final @NotNull Activity activity) {
290300 }
291301 }
292302
293- private void setSpanOrigin (ISpan span ) {
294- if (span != null ) {
295- // TODO [POTEL] replace with transactionOptions.setOrigin
296- span .getSpanContext ().setOrigin (TRACE_ORIGIN );
297- }
303+ private void setSpanOrigin (final @ NotNull SpanOptions spanOptions ) {
304+ spanOptions .setOrigin (TRACE_ORIGIN );
298305 }
299306
300307 @ VisibleForTesting
0 commit comments