From a10d27f790613fb4fccbe0e5b41b057681cb51d8 Mon Sep 17 00:00:00 2001 From: Maciej Burda Date: Thu, 20 Feb 2025 12:01:18 +0000 Subject: [PATCH 1/5] RUM-8673 Update setUserInfo API to make id mandatory --- .../main/kotlin/com/datadog/android/Datadog.kt | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt index 31218e70cb..a32be9fd5e 100644 --- a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt +++ b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt @@ -239,7 +239,7 @@ object Datadog { /** * Sets the user information. * - * @param id (nullable) a unique user identifier (relevant to your business domain) + * @param id a unique user identifier (relevant to your business domain) * @param name (nullable) the user name or alias * @param email (nullable) the user email * @param extraInfo additional information. An extra information can be @@ -249,6 +249,22 @@ object Datadog { */ @JvmStatic @JvmOverloads + fun setUserInfo( + id: String, + name: String? = null, + email: String? = null, + extraInfo: Map = emptyMap(), + sdkCore: SdkCore = getInstance() + ) { + sdkCore.setUserInfo(id, name, email, extraInfo) + } + + @JvmStatic + @JvmOverloads + @Deprecated( + "UserInfo id property is now mandatory.", + ReplaceWith("setUserInfo(id!!, name, email, extraInfo, sdkCore)") + ) fun setUserInfo( id: String? = null, name: String? = null, From 672163ecdb69397254a5621eac38a5098a33041c Mon Sep 17 00:00:00 2001 From: Maciej Burda Date: Thu, 20 Feb 2025 12:02:02 +0000 Subject: [PATCH 2/5] RUM-8673 Update apiSurface --- dd-sdk-android-core/api/apiSurface | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dd-sdk-android-core/api/apiSurface b/dd-sdk-android-core/api/apiSurface index 313ea60651..066b88bf1c 100644 --- a/dd-sdk-android-core/api/apiSurface +++ b/dd-sdk-android-core/api/apiSurface @@ -7,7 +7,8 @@ object com.datadog.android.Datadog fun setVerbosity(Int) fun getVerbosity(): Int fun setTrackingConsent(com.datadog.android.privacy.TrackingConsent, com.datadog.android.api.SdkCore = getInstance()) - fun setUserInfo(String? = null, String? = null, String? = null, Map = emptyMap(), com.datadog.android.api.SdkCore = getInstance()) + fun setUserInfo(String, String? = null, String? = null, Map = emptyMap(), com.datadog.android.api.SdkCore = getInstance()) + DEPRECATED fun setUserInfo(String? = null, String? = null, String? = null, Map = emptyMap(), com.datadog.android.api.SdkCore = getInstance()) fun addUserProperties(Map, com.datadog.android.api.SdkCore = getInstance()) fun clearAllData(com.datadog.android.api.SdkCore = getInstance()) fun _internalProxy(String? = null): _InternalProxy From 134079554475b1e49ab75c1313a7b6c705390ce9 Mon Sep 17 00:00:00 2001 From: Maciej Burda Date: Thu, 20 Feb 2025 12:04:30 +0000 Subject: [PATCH 3/5] RUM-8673 Add docs to deprecated API --- .../src/main/kotlin/com/datadog/android/Datadog.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt index a32be9fd5e..fbfbd17715 100644 --- a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt +++ b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt @@ -259,6 +259,17 @@ object Datadog { sdkCore.setUserInfo(id, name, email, extraInfo) } + /** + * Sets the user information. + * + * @param id (nullable) a unique user identifier (relevant to your business domain) + * @param name (nullable) the user name or alias + * @param email (nullable) the user email + * @param extraInfo additional information. An extra information can be + * nested up to 8 levels deep. Keys using more than 8 levels will be sanitized by SDK. + * @param sdkCore SDK instance to set user info in. If not provided, default SDK instance + * will be used. + */ @JvmStatic @JvmOverloads @Deprecated( From 9f93441f74e760101c7c083442c20f55237bb51f Mon Sep 17 00:00:00 2001 From: Maciej Burda Date: Thu, 20 Feb 2025 12:14:33 +0000 Subject: [PATCH 4/5] RUM-8673 Resolve JVM signature clash --- dd-sdk-android-core/api/dd-sdk-android-core.api | 8 +++++++- .../src/main/kotlin/com/datadog/android/Datadog.kt | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dd-sdk-android-core/api/dd-sdk-android-core.api b/dd-sdk-android-core/api/dd-sdk-android-core.api index 8ef761519d..05f8a95b38 100644 --- a/dd-sdk-android-core/api/dd-sdk-android-core.api +++ b/dd-sdk-android-core/api/dd-sdk-android-core.api @@ -30,13 +30,19 @@ public final class com/datadog/android/Datadog { public static final fun setTrackingConsent (Lcom/datadog/android/privacy/TrackingConsent;)V public static final fun setTrackingConsent (Lcom/datadog/android/privacy/TrackingConsent;Lcom/datadog/android/api/SdkCore;)V public static synthetic fun setTrackingConsent$default (Lcom/datadog/android/privacy/TrackingConsent;Lcom/datadog/android/api/SdkCore;ILjava/lang/Object;)V - public static final fun setUserInfo ()V public static final fun setUserInfo (Ljava/lang/String;)V public static final fun setUserInfo (Ljava/lang/String;Ljava/lang/String;)V public static final fun setUserInfo (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public static final fun setUserInfo (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V public static final fun setUserInfo (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/datadog/android/api/SdkCore;)V public static synthetic fun setUserInfo$default (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/datadog/android/api/SdkCore;ILjava/lang/Object;)V + public static final fun setUserInfoDeprecated ()V + public static final fun setUserInfoDeprecated (Ljava/lang/String;)V + public static final fun setUserInfoDeprecated (Ljava/lang/String;Ljava/lang/String;)V + public static final fun setUserInfoDeprecated (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public static final fun setUserInfoDeprecated (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V + public static final fun setUserInfoDeprecated (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/datadog/android/api/SdkCore;)V + public static synthetic fun setUserInfoDeprecated$default (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lcom/datadog/android/api/SdkCore;ILjava/lang/Object;)V public static final fun setVerbosity (I)V public static final fun stopInstance ()V public static final fun stopInstance (Ljava/lang/String;)V diff --git a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt index fbfbd17715..fc2845fa68 100644 --- a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt +++ b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt @@ -276,6 +276,7 @@ object Datadog { "UserInfo id property is now mandatory.", ReplaceWith("setUserInfo(id!!, name, email, extraInfo, sdkCore)") ) + @JvmName("setUserInfoDeprecated") fun setUserInfo( id: String? = null, name: String? = null, From f89bc890794e048b37c302e31a3bf5739d210b3b Mon Sep 17 00:00:00 2001 From: Maciej Burda Date: Fri, 28 Feb 2025 12:26:11 +0000 Subject: [PATCH 5/5] RUM-8673 PR Fixes --- .../src/main/kotlin/com/datadog/android/Datadog.kt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt index fc2845fa68..544e871a72 100644 --- a/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt +++ b/dd-sdk-android-core/src/main/kotlin/com/datadog/android/Datadog.kt @@ -272,10 +272,7 @@ object Datadog { */ @JvmStatic @JvmOverloads - @Deprecated( - "UserInfo id property is now mandatory.", - ReplaceWith("setUserInfo(id!!, name, email, extraInfo, sdkCore)") - ) + @Deprecated("UserInfo id property is now mandatory.") @JvmName("setUserInfoDeprecated") fun setUserInfo( id: String? = null,