Skip to content

Commit 431f8fd

Browse files
committed
address comments
1 parent 20c3383 commit 431f8fd

File tree

6 files changed

+19
-21
lines changed

6 files changed

+19
-21
lines changed

features/dd-sdk-android-flags/api/dd-sdk-android-flags.api

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public final class com/datadog/android/flags/FlagsClient$Companion {
3535

3636
public final class com/datadog/android/flags/FlagsConfiguration {
3737
public static final field Companion Lcom/datadog/android/flags/FlagsConfiguration$Companion;
38-
public fun <init> ()V
3938
public final fun copy (ZLjava/lang/String;Ljava/lang/String;ZZ)Lcom/datadog/android/flags/FlagsConfiguration;
4039
public static synthetic fun copy$default (Lcom/datadog/android/flags/FlagsConfiguration;ZLjava/lang/String;Ljava/lang/String;ZZILjava/lang/Object;)Lcom/datadog/android/flags/FlagsConfiguration;
4140
public fun equals (Ljava/lang/Object;)Z

features/dd-sdk-android-flags/src/main/kotlin/com/datadog/android/flags/FlagsConfiguration.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ package com.datadog.android.flags
1010
* Describes configuration to be used for the Flags feature.
1111
*/
1212
data class FlagsConfiguration internal constructor(
13-
internal val trackExposures: Boolean = true,
14-
internal val customExposureEndpoint: String? = null,
15-
internal val customFlagEndpoint: String? = null,
16-
internal val rumIntegrationEnabled: Boolean = true,
17-
internal val gracefulModeEnabled: Boolean = true
13+
internal val trackExposures: Boolean,
14+
internal val customExposureEndpoint: String?,
15+
internal val customFlagEndpoint: String?,
16+
internal val rumIntegrationEnabled: Boolean,
17+
internal val gracefulModeEnabled: Boolean
1818
) {
1919
/**
2020
* A Builder class for a [FlagsConfiguration].
@@ -121,6 +121,6 @@ data class FlagsConfiguration internal constructor(
121121
* - No custom endpoint URL (uses standard Datadog intake)
122122
* - No custom flag endpoint URL (uses standard Datadog edge assignment endpoint)
123123
*/
124-
internal val default = FlagsConfiguration()
124+
internal val default = Builder().build()
125125
}
126126
}

features/dd-sdk-android-flags/src/main/kotlin/com/datadog/android/flags/internal/DatadogFlagsClient.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -357,8 +357,7 @@ internal class DatadogFlagsClient(
357357
variant = null,
358358
reason = ResolutionReason.ERROR,
359359
errorCode = errorCode,
360-
errorMessage = "Flag '$flagKey': $errorMessage",
361-
flagMetadata = null
360+
errorMessage = "Flag '$flagKey': $errorMessage"
362361
)
363362

364363
private fun parseReason(reasonString: String): ResolutionReason? {

features/dd-sdk-android-flags/src/main/kotlin/com/datadog/android/flags/internal/FlagsFeature.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ internal class FlagsFeature(private val sdkCore: FeatureSdkCore, internal val fl
5555
@Volatile
5656
private var isDebugBuild: Boolean = false
5757

58+
/**
59+
* Registry of [FlagsClient] instances by name.
60+
* This map stores all clients created for this feature instance.
61+
*/
62+
private val registeredClients: MutableMap<String, FlagsClient> = mutableMapOf()
63+
5864
// region Domain Objects
5965

6066
/**
@@ -119,12 +125,6 @@ internal class FlagsFeature(private val sdkCore: FeatureSdkCore, internal val fl
119125

120126
// region FlagsClient Management
121127

122-
/**
123-
* Registry of [FlagsClient] instances by name.
124-
* This map stores all clients created for this feature instance.
125-
*/
126-
private val registeredClients: MutableMap<String, FlagsClient> = mutableMapOf()
127-
128128
/**
129129
* Gets a registered [FlagsClient] by name.
130130
*

features/dd-sdk-android-flags/src/main/kotlin/com/datadog/android/flags/model/ResolutionDetails.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ package com.datadog.android.flags.model
1818
* @property reason Optional reason code explaining why this value was resolved.
1919
* @property errorCode Optional error code if the resolution failed. Null indicates successful resolution.
2020
* @property errorMessage Optional human-readable error message providing additional context about failures.
21-
* @property flagMetadata Optional map of arbitrary metadata associated with the flag (string keys, primitive values).
21+
* @property flagMetadata Map of arbitrary metadata associated with the flag (string keys, primitive values). Empty if no metadata.
2222
*/
2323
data class ResolutionDetails<T : Any>(
2424
val value: T,
2525
val variant: String? = null,
2626
val reason: ResolutionReason? = null,
2727
val errorCode: ErrorCode? = null,
2828
val errorMessage: String? = null,
29-
val flagMetadata: Map<String, Any>? = null
29+
val flagMetadata: Map<String, Any> = emptyMap()
3030
)

features/dd-sdk-android-flags/src/test/kotlin/com/datadog/android/flags/internal/DatadogFlagsClientTest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,7 @@ internal class DatadogFlagsClientTest {
718718
assertThat(result.errorCode).isEqualTo(ErrorCode.TYPE_MISMATCH)
719719
assertThat(result.errorMessage).contains("Flag '$fakeFlagKey'")
720720
assertThat(result.errorMessage).contains("has type 'string' but Boolean was requested")
721-
assertThat(result.flagMetadata).isNull()
721+
assertThat(result.flagMetadata).isEmpty()
722722

723723
// Verify no exposure tracked for type mismatch
724724
verifyNoInteractions(mockProcessor)
@@ -741,7 +741,7 @@ internal class DatadogFlagsClientTest {
741741
assertThat(result.errorCode).isEqualTo(ErrorCode.FLAG_NOT_FOUND)
742742
assertThat(result.errorMessage).contains("Flag '$fakeFlagKey'")
743743
assertThat(result.errorMessage).contains("Flag not found")
744-
assertThat(result.flagMetadata).isNull()
744+
assertThat(result.flagMetadata).isEmpty()
745745

746746
// Verify no exposure tracked when flag not found
747747
verifyNoInteractions(mockProcessor)
@@ -764,7 +764,7 @@ internal class DatadogFlagsClientTest {
764764
assertThat(result.errorCode).isEqualTo(ErrorCode.PROVIDER_NOT_READY)
765765
assertThat(result.errorMessage).contains("Flag '$fakeFlagKey'")
766766
assertThat(result.errorMessage).contains("Provider not ready")
767-
assertThat(result.flagMetadata).isNull()
767+
assertThat(result.flagMetadata).isEmpty()
768768

769769
// Verify no exposure tracked when provider not ready
770770
verifyNoInteractions(mockProcessor)
@@ -798,7 +798,7 @@ internal class DatadogFlagsClientTest {
798798
assertThat(result.errorCode).isEqualTo(ErrorCode.PARSE_ERROR)
799799
assertThat(result.errorMessage).contains("Flag '$fakeFlagKey'")
800800
assertThat(result.errorMessage).contains("Failed to parse value")
801-
assertThat(result.flagMetadata).isNull()
801+
assertThat(result.flagMetadata).isEmpty()
802802

803803
// Verify no exposure tracked for parse error
804804
verifyNoInteractions(mockProcessor)

0 commit comments

Comments
 (0)