Skip to content

Commit

Permalink
Add synthetics attributes from MainActivity intent
Browse files Browse the repository at this point in the history
  • Loading branch information
marco-saia-datadog committed Sep 6, 2024
1 parent 09ed139 commit fb7ac6c
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ package com.datadog.reactnative
import android.content.Context
import android.util.Log
import com.datadog.android.privacy.TrackingConsent
import com.datadog.android.rum.configuration.VitalsUpdateFrequency
import com.datadog.android.rum.GlobalRumMonitor
import com.datadog.android.rum.RumPerformanceMetric
import com.datadog.android.rum.configuration.VitalsUpdateFrequency
import com.facebook.react.bridge.LifecycleEventListener
import com.facebook.react.bridge.Promise
import com.facebook.react.bridge.ReactApplicationContext
Expand Down Expand Up @@ -57,6 +58,8 @@ class DdSdkImplementation(
}
})

configureSynthetics()

initialized.set(true)

promise.resolve(null)
Expand Down Expand Up @@ -156,6 +159,19 @@ class DdSdkImplementation(
}
}

private fun configureSynthetics() {
if (DdSdkSynthetics.testId.isNullOrBlank() || DdSdkSynthetics.resultId.isNullOrBlank()) {
return
}

val core = DatadogSDKWrapperStorage.getSdkCore()
val monitor = GlobalRumMonitor.get(core)
monitor._getInternal()?.setSyntheticsAttribute(
DdSdkSynthetics.testId,
DdSdkSynthetics.resultId
)
}

private fun buildVitalUpdateFrequency(vitalsUpdateFrequency: String?): VitalsUpdateFrequency {
val vitalUpdateFrequencyLower = vitalsUpdateFrequency?.lowercase(Locale.US)
return when (vitalUpdateFrequencyLower) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
* This product includes software developed at Datadog (https://www.datadoghq.com/).
* Copyright 2016-Present Datadog, Inc.
*/

package com.datadog.reactnative

internal object DdSdkSynthetics {
var testId: String? = null
var resultId: String? = null
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

package com.datadog.reactnative

import android.app.Activity
import com.facebook.react.bridge.LifecycleEventListener
import com.facebook.react.bridge.Promise
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.ReactMethod
Expand All @@ -21,6 +23,23 @@ class DdSdk(

override fun getName(): String = DdSdkImplementation.NAME

init {
reactContext.addLifecycleEventListener(object : LifecycleEventListener {
override fun onHostResume() {
val currentActivity: Activity? = currentActivity
if (currentActivity != null) {
val intent = currentActivity.intent
val extras = intent.extras
DdSdkSynthetics.testId = extras?.getString("_dd.synthetics.test_id")
DdSdkSynthetics.resultId = extras?.getString("_dd.synthetics.result_id")
}
}

override fun onHostPause() {}
override fun onHostDestroy() {}
})
}

/**
* Initializes Datadog's features.
* @param configuration The configuration to use.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

package com.datadog.reactnative

import android.app.Activity
import com.facebook.react.bridge.LifecycleEventListener
import com.facebook.react.bridge.Promise
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.ReactContextBaseJavaModule
Expand All @@ -22,6 +24,23 @@ class DdSdk(

override fun getName(): String = DdSdkImplementation.NAME

init {
reactContext.addLifecycleEventListener(object : LifecycleEventListener {
override fun onHostResume() {
val currentActivity: Activity? = currentActivity
if (currentActivity != null) {
val intent = currentActivity.intent
val extras = intent.extras
DdSdkSynthetics.testId = extras?.getString("_dd.synthetics.test_id")
DdSdkSynthetics.resultId = extras?.getString("_dd.synthetics.result_id")
}
}

override fun onHostPause() {}
override fun onHostDestroy() {}
})
}

/**
* Initializes Datadog's features.
* @param configuration The configuration to use.
Expand Down

0 comments on commit fb7ac6c

Please sign in to comment.