@@ -1212,15 +1212,15 @@ OptimizelyDecision decide(@Nonnull OptimizelyUserContext user,
12121212 @ Nonnull String key ,
12131213 @ Nonnull List <OptimizelyDecideOption > options ) {
12141214 ProjectConfig projectConfig = getProjectConfig ();
1215- List <OptimizelyDecideOption > filteredOptions = options .stream ()
1216- .filter (opt -> opt != OptimizelyDecideOption .ENABLED_FLAGS_ONLY )
1217- .collect (Collectors .toList ());
1218-
12191215 if (projectConfig == null ) {
12201216 return OptimizelyDecision .newErrorDecision (key , user , DecisionMessage .SDK_NOT_READY .reason ());
12211217 }
12221218
1223- return decideForKeys (user , Arrays .asList (key ), filteredOptions ).get (key );
1219+ List <OptimizelyDecideOption > filteredOptions = getAllOptions (options ).stream ()
1220+ .filter (opt -> opt != OptimizelyDecideOption .ENABLED_FLAGS_ONLY )
1221+ .collect (Collectors .toList ());
1222+
1223+ return decideForKeys (user , Arrays .asList (key ), filteredOptions , true ).get (key );
12241224 }
12251225
12261226 private OptimizelyDecision createOptimizelyDecision (
@@ -1305,8 +1305,15 @@ private OptimizelyDecision createOptimizelyDecision(
13051305 }
13061306
13071307 Map <String , OptimizelyDecision > decideForKeys (@ Nonnull OptimizelyUserContext user ,
1308+ @ Nonnull List <String > keys ,
1309+ @ Nonnull List <OptimizelyDecideOption > options ) {
1310+ return decideForKeys (user , keys , options , false );
1311+ }
1312+
1313+ private Map <String , OptimizelyDecision > decideForKeys (@ Nonnull OptimizelyUserContext user ,
13081314 @ Nonnull List <String > keys ,
1309- @ Nonnull List <OptimizelyDecideOption > options ) {
1315+ @ Nonnull List <OptimizelyDecideOption > options ,
1316+ boolean ignoreDefaultOptions ) {
13101317 Map <String , OptimizelyDecision > decisionMap = new HashMap <>();
13111318
13121319 ProjectConfig projectConfig = getProjectConfig ();
@@ -1317,7 +1324,7 @@ Map<String, OptimizelyDecision> decideForKeys(@Nonnull OptimizelyUserContext use
13171324
13181325 if (keys .isEmpty ()) return decisionMap ;
13191326
1320- List <OptimizelyDecideOption > allOptions = getAllOptions (options );
1327+ List <OptimizelyDecideOption > allOptions = ignoreDefaultOptions ? options : getAllOptions (options );
13211328
13221329 Map <String , FeatureDecision > flagDecisions = new HashMap <>();
13231330 Map <String , DecisionReasons > decisionReasonsMap = new HashMap <>();
@@ -1356,19 +1363,6 @@ Map<String, OptimizelyDecision> decideForKeys(@Nonnull OptimizelyUserContext use
13561363 decisionReasonsMap .get (flagKey ).merge (decision .getReasons ());
13571364 }
13581365
1359- // for (Map.Entry<String, FeatureDecision> entry: flagDecisions.entrySet()) {
1360- // String key = entry.getKey();
1361- // FeatureDecision flagDecision = entry.getValue();
1362- // DecisionReasons decisionReasons = decisionReasonsMap.get((key));
1363- //
1364- // OptimizelyDecision optimizelyDecision = createOptimizelyDecision(
1365- // user, key, flagDecision, decisionReasons, allOptions, projectConfig
1366- // );
1367- //
1368- // if (!allOptions.contains(OptimizelyDecideOption.ENABLED_FLAGS_ONLY) || optimizelyDecision.getEnabled()) {
1369- // decisionMap.put(key, optimizelyDecision);
1370- // }
1371- // }
13721366 for (String key : validKeys ) {
13731367 FeatureDecision flagDecision = flagDecisions .get (key );
13741368 DecisionReasons decisionReasons = decisionReasonsMap .get ((key ));
0 commit comments