Skip to content

Commit dff465e

Browse files
Merge pull request #45 from statsig-io/return_empty
return empty when not initialized
2 parents 29f490e + 8953fbd commit dff465e

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

src/main/java/com/statsig/androidlocalevalsdk/DynamicConfig.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class DynamicConfig(
99
val ruleID: String? = null,
1010
val groupName: String? = null,
1111
val secondaryExposures: ArrayList<Map<String, String>> = arrayListOf(),
12-
val evaluationDetails: EvaluationDetails? = null,
12+
var evaluationDetails: EvaluationDetails? = null,
1313
) {
1414
companion object {
1515
fun empty(name: String = ""): DynamicConfig {

src/main/java/com/statsig/androidlocalevalsdk/StatsigClient.kt

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,12 @@ class StatsigClient {
152152
* @return the Dynamic Config backing the experiment
153153
*/
154154
@JvmOverloads
155-
fun getExperiment(user: StatsigUser, experimentName: String, option: GetExperimentOptions? = null): DynamicConfig? {
155+
fun getExperiment(user: StatsigUser, experimentName: String, option: GetExperimentOptions? = null): DynamicConfig {
156+
var result = DynamicConfig.empty()
156157
if (!isInitialized("getExperiment")) {
157-
return null
158+
result.evaluationDetails = EvaluationDetails(0,EvaluationReason.UNINITIALIZED)
159+
return result
158160
}
159-
var result = DynamicConfig.empty()
160161
errorBoundary.capture({
161162
val normalizedUser = normalizeUser(user)
162163
val evaluation = evaluator.getConfig(normalizedUser, experimentName, option?.userPersistedValues)
@@ -191,11 +192,12 @@ class StatsigClient {
191192
* @return DynamicConfig object evaluated for the selected StatsigUser
192193
*/
193194
@JvmOverloads
194-
fun getConfig(user: StatsigUser, dynamicConfigName: String, option: GetConfigOptions? = null): DynamicConfig? {
195-
if (!isInitialized("getConfig")) {
196-
return null
197-
}
195+
fun getConfig(user: StatsigUser, dynamicConfigName: String, option: GetConfigOptions? = null): DynamicConfig {
198196
var result = DynamicConfig.empty()
197+
if (!isInitialized("getExperiment")) {
198+
result.evaluationDetails = EvaluationDetails(0,EvaluationReason.UNINITIALIZED)
199+
return result
200+
}
199201
errorBoundary.capture({
200202
val normalizedUser = normalizeUser(user)
201203
val evaluation = evaluator.getConfig(normalizedUser, dynamicConfigName)
@@ -229,11 +231,11 @@ class StatsigClient {
229231
* @return the current layer values as a Layer object
230232
*/
231233
@JvmOverloads
232-
fun getLayer(user: StatsigUser, layerName: String, option: GetLayerOptions? = null): Layer? {
233-
if (!isInitialized("getLayer")) {
234-
return null
235-
}
234+
fun getLayer(user: StatsigUser, layerName: String, option: GetLayerOptions? = null): Layer {
236235
var result = Layer.empty(layerName)
236+
if (!isInitialized("getExperiment")) {
237+
return result
238+
}
237239
errorBoundary.capture({
238240
val normalizedUser = normalizeUser(user)
239241
val evaluation = evaluator.getLayer(normalizedUser, layerName, option?.userPersistedValues)

0 commit comments

Comments
 (0)