Skip to content

Commit bce2bbf

Browse files
authored
Merge pull request #2636 from DataDog/nogorodnikov/merge-develop-into-feature-context-sync-070525
Merge `develop` branch into `feature-context-sync` branch
2 parents fa0a135 + 4031b73 commit bce2bbf

File tree

65 files changed

+2165
-361
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+2165
-361
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ config/*
2626
# .log
2727
*.log
2828

29+
# Kotlin
30+
.kotlin/
31+
2932
gh_token
3033
sdk_classpath
3134
detekt_classpath

CHANGELOG.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,36 @@
1+
# 2.21.0 / 2025-05-06
2+
3+
* [FEATURE] Add Compose instrumentation API for view tracking and image recording. See [#2570](https://github.com/DataDog/dd-sdk-android/pull/2570)
4+
* [FEATURE] Add `ActionTrackingStrategy` interface to decouple find view logic. See [#2573](https://github.com/DataDog/dd-sdk-android/pull/2573)
5+
* [FEATURE] Add Compose actions tracking strategy API in `RumConfiguration`. See [#2575](https://github.com/DataDog/dd-sdk-android/pull/2575)
6+
* [FEATURE] Implement Compose actions tracking strategy. See [#2586](https://github.com/DataDog/dd-sdk-android/pull/2586)
7+
* [FEATURE] Change `TrackViews` and `RecordImages` annotations to `ComposeInstrumentation`. See [#2595](https://github.com/DataDog/dd-sdk-android/pull/2595)
8+
* [BUGFIX] Fix Rum Action Tap is added twice for every `ACTION_UP`. See [#2579](https://github.com/DataDog/dd-sdk-android/pull/2579)
9+
* [BUGFIX] Cover `IndexOutOfBoundsException` in `DrawableUtils`. See [#2604](https://github.com/DataDog/dd-sdk-android/pull/2604)
10+
* [BUGFIX] Let `AndroidTracer.logErrorMessage()` send an ERROR log. See [#2605](https://github.com/DataDog/dd-sdk-android/pull/2605)
11+
* [BUGFIX] Fix artifacts in Jetpack Compose scrolling. See [#2610](https://github.com/DataDog/dd-sdk-android/pull/2610)
12+
* [BUGFIX] Fix `ViewTarget` is garbage collected during actions tracking. See [#2608](https://github.com/DataDog/dd-sdk-android/pull/2608)
13+
* [BUGFIX] Fix the memory leak in the `PendingTrace#cleaner`. See [#2607](https://github.com/DataDog/dd-sdk-android/pull/2607)
14+
* [BUGFIX] Fix Session Replay is not resumed after the session has expired before. See [#2611](https://github.com/DataDog/dd-sdk-android/pull/2611)
15+
* [BUGFIX] Catch NPE when drawing cloned drawable in Session Replay. See [#2622](https://github.com/DataDog/dd-sdk-android/pull/2622)
16+
* [BUGFIX] Revert: Remove shared `ThreadLocal` scopes. See [#2603](https://github.com/DataDog/dd-sdk-android/pull/2603)
17+
* [IMPROVEMENT] Remove test fixtures content root duplication in `dd-sdk-android-session-replay-compose` module. See [#2592](https://github.com/DataDog/dd-sdk-android/pull/2592)
18+
* [IMPROVEMENT] Minor improvements. See [#2609](https://github.com/DataDog/dd-sdk-android/pull/2609)
19+
* [IMPROVEMENT] Propagate session ID in baggage header. See [#2602](https://github.com/DataDog/dd-sdk-android/pull/2602)
20+
* [MAINTENANCE] Add workflow: Changelog update to Confluence. See [#2596](https://github.com/DataDog/dd-sdk-android/pull/2596)
21+
* [MAINTENANCE] Add telemetry for Compose instrumentation functions. See [#2601](https://github.com/DataDog/dd-sdk-android/pull/2601)
22+
* [MAINTENANCE] Add Android Auto and Android XR support to the sample app. See [#2606](https://github.com/DataDog/dd-sdk-android/pull/2606)
23+
* [MAINTENANCE] Add metrics for internal benchmarking. See [#2581](https://github.com/DataDog/dd-sdk-android/pull/2581)
24+
* [MAINTENANCE] Sample telemetry for `RecordedDataQueueHandler`. See [#2600](https://github.com/DataDog/dd-sdk-android/pull/2600)
25+
* [MAINTENANCE] Remove the noisy warning log as for some views it is normal to not have ITV. See [#2617](https://github.com/DataDog/dd-sdk-android/pull/2617)
26+
* [MAINTENANCE] Fix semantics of `ExecutorService.submit` vs `Executor.execute` usage. See [#2616](https://github.com/DataDog/dd-sdk-android/pull/2616)
27+
* [MAINTENANCE] Integrate Datadog Plugin in benchmark application. See [#2618](https://github.com/DataDog/dd-sdk-android/pull/2618)
28+
* [MAINTENANCE] Merge `feature/compose-instrumentation-api` into `feature/actions-tracking`. See [#2583](https://github.com/DataDog/dd-sdk-android/pull/2583)
29+
* [MAINTENANCE] Merge 2.20.0 into `develop`. See [#2588](https://github.com/DataDog/dd-sdk-android/pull/2588)
30+
* [MAINTENANCE] Merge `Feature/actions-tracking` into `develop`. See [#2598](https://github.com/DataDog/dd-sdk-android/pull/2598)
31+
* [MAINTENANCE] Bump version to 2.21.0-SNAPSHOT. See [#2585](https://github.com/DataDog/dd-sdk-android/pull/2585)
32+
* [MAINTENANCE] Bump `targetSdk` to 36. See [#2589](https://github.com/DataDog/dd-sdk-android/pull/2589)
33+
134
# 2.20.0 / 2025-04-07
235

336
* [FEATURE] Slow frames collection support. See [#2518](https://github.com/DataDog/dd-sdk-android/pull/2518)

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ nexusPublishing {
5858
}
5959

6060
task<Delete>("clean") {
61-
delete(rootProject.buildDir)
61+
delete(rootProject.layout.buildDirectory)
6262
}
6363

6464
tasks.register("checkAll") {

buildSrc/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ dependencies {
3232
implementation(libs.kotlinGradlePlugin)
3333
implementation(libs.androidToolsGradlePlugin)
3434
implementation(libs.versionsGradlePlugin)
35-
implementation(libs.fuzzyWuzzy)
3635
implementation(libs.dokkaGradlePlugin)
3736
implementation(libs.dependencyLicenseGradlePlugin)
3837
implementation(libs.kover)

buildSrc/src/main/kotlin/com/datadog/gradle/config/AndroidConfig.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ object AndroidConfig {
2020
const val MIN_SDK_FOR_WEAR = 23
2121
const val BUILD_TOOLS_VERSION = "36.0.0"
2222

23-
val VERSION = Version(2, 21, 0, Version.Type.Snapshot)
23+
val VERSION = Version(2, 22, 0, Version.Type.Snapshot)
2424
}
2525

2626
// TODO RUM-628 Switch to Java 17 bytecode

buildSrc/src/main/kotlin/com/datadog/gradle/plugin/transdeps/GenerateTransitiveDependenciesTask.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ package com.datadog.gradle.plugin.transdeps
88

99
import org.gradle.api.DefaultTask
1010
import org.gradle.api.artifacts.Configuration
11-
import org.gradle.api.artifacts.ProjectDependency
11+
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
1212
import org.gradle.api.tasks.Input
1313
import org.gradle.api.tasks.OutputFile
1414
import org.gradle.api.tasks.TaskAction
@@ -47,10 +47,12 @@ open class GenerateTransitiveDependenciesTask : DefaultTask() {
4747
check(configuration.isCanBeResolved) { "$configuration cannot be resolved" }
4848

4949
val sortedArtifacts = if (sortByName) {
50-
configuration.files {
51-
// ProjectDependency (i.e. local modules) don't have a file associated
52-
it !is ProjectDependency
53-
}.sortedBy { it.absolutePath }
50+
configuration.incoming
51+
.artifactView {
52+
componentFilter { it !is ProjectComponentIdentifier }
53+
}
54+
.files
55+
.sortedBy { it.absolutePath }
5456
} else {
5557
configuration.sortedBy { -it.length() }
5658
}

features/dd-sdk-android-rum/src/main/kotlin/com/datadog/android/rum/internal/domain/scope/RumSessionScope.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ internal class RumSessionScope(
206206
lastUserInteractionNs.set(nanoTime)
207207
} else if (isExpired) {
208208
if (backgroundTrackingEnabled && (isBackgroundEvent || isSdkInitInBackground)) {
209-
renewSession(nanoTime, StartReason.INACTIVITY_TIMEOUT)
209+
renewSession(nanoTime, StartReason.BACKGROUND_LAUNCH)
210210
lastUserInteractionNs.set(nanoTime)
211211
} else {
212212
sessionState = State.EXPIRED

features/dd-sdk-android-rum/src/test/kotlin/com/datadog/android/rum/internal/domain/scope/RumSessionScopeTest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ internal class RumSessionScopeTest {
128128
@Forgery
129129
lateinit var fakeDatadogContext: DatadogContext
130130

131-
lateinit var fakeInitialViewEvent: RumRawEvent
131+
private lateinit var fakeInitialViewEvent: RumRawEvent
132132

133133
@BeforeEach
134134
fun `set up`(forge: Forge) {
@@ -472,7 +472,7 @@ internal class RumSessionScopeTest {
472472
assertThat(result).isSameAs(testedScope)
473473
assertThat(context.sessionId).isNotEqualTo(RumContext.NULL_UUID)
474474
assertThat(context.sessionState).isEqualTo(RumSessionScope.State.TRACKED)
475-
assertThat(context.sessionStartReason).isEqualTo(RumSessionScope.StartReason.INACTIVITY_TIMEOUT)
475+
assertThat(context.sessionStartReason).isEqualTo(RumSessionScope.StartReason.BACKGROUND_LAUNCH)
476476
assertThat(context.applicationId).isEqualTo(fakeParentContext.applicationId)
477477
assertThat(context.viewId).isEqualTo(fakeParentContext.viewId)
478478
}
@@ -671,7 +671,7 @@ internal class RumSessionScopeTest {
671671
.isNotEqualTo(initialContext.sessionId)
672672
.isNotEqualTo(RumContext.NULL_UUID)
673673
assertThat(context.sessionState).isEqualTo(RumSessionScope.State.TRACKED)
674-
assertThat(context.sessionStartReason).isEqualTo(RumSessionScope.StartReason.INACTIVITY_TIMEOUT)
674+
assertThat(context.sessionStartReason).isEqualTo(RumSessionScope.StartReason.BACKGROUND_LAUNCH)
675675
}
676676

677677
@Test
@@ -694,7 +694,7 @@ internal class RumSessionScopeTest {
694694
.isNotEqualTo(initialContext.sessionId)
695695
.isNotEqualTo(RumContext.NULL_UUID)
696696
assertThat(context.sessionState).isEqualTo(RumSessionScope.State.TRACKED)
697-
assertThat(context.sessionStartReason).isEqualTo(RumSessionScope.StartReason.INACTIVITY_TIMEOUT)
697+
assertThat(context.sessionStartReason).isEqualTo(RumSessionScope.StartReason.BACKGROUND_LAUNCH)
698698
}
699699

700700
@Test

features/dd-sdk-android-session-replay/src/main/kotlin/com/datadog/android/sessionreplay/internal/utils/DrawableUtils.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import android.graphics.Bitmap.Config
1111
import android.graphics.Color
1212
import android.graphics.PorterDuff
1313
import android.graphics.drawable.Drawable
14-
import android.util.AndroidRuntimeException
1514
import android.util.DisplayMetrics
1615
import androidx.annotation.VisibleForTesting
1716
import androidx.annotation.WorkerThread
@@ -119,11 +118,7 @@ internal class DrawableUtils(
119118

120119
try {
121120
drawable.draw(canvas)
122-
} catch (e: IndexOutOfBoundsException) {
123-
logDrawableDrawException(drawable, e)
124-
bitmapCreationCallback.onFailure()
125-
return
126-
} catch (e: AndroidRuntimeException) {
121+
} catch (e: RuntimeException) {
127122
logDrawableDrawException(drawable, e)
128123
bitmapCreationCallback.onFailure()
129124
return

features/dd-sdk-android-trace-otel/transitiveDependencies

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ Dependencies List
33
androidx.annotation:annotation-jvm:1.9.1 : 59 Kb
44
io.opentelemetry:opentelemetry-api:1.4.0 : 78 Kb
55
io.opentelemetry:opentelemetry-context:1.4.0 : 42 Kb
6+
io.opentracing:opentracing-api:0.32.0 : 18 Kb
7+
io.opentracing:opentracing-noop:0.32.0 : 10 Kb
8+
io.opentracing:opentracing-util:0.32.0 : 10 Kb
69
org.jetbrains.kotlin:kotlin-stdlib:1.9.24 : 1678 Kb
710
org.jetbrains:annotations:13.0 : 17 Kb
811

9-
Total transitive dependencies size : 1876 Kb
12+
Total transitive dependencies size : 1915 Kb
1013

0 commit comments

Comments
 (0)