@@ -1611,125 +1611,6 @@ void decideAllAsync(@Nonnull OptimizelyUserContext userContext,
16111611 fetcher .start ();
16121612 }
16131613
1614- /**
1615- * Returns a decision result ({@link OptimizelyDecision}) for a given flag key and a user context,
1616- * skipping CMAB logic and using only traditional A/B testing.
1617- * This will be called by mobile apps which will make synchronous decisions only (for backward compatibility with android-sdk)
1618- *
1619- * @param user An OptimizelyUserContext associated with this OptimizelyClient.
1620- * @param key A flag key for which a decision will be made.
1621- * @param options A list of options for decision-making.
1622- * @return A decision result using traditional A/B testing logic only.
1623- */
1624- OptimizelyDecision decideSync (@ Nonnull OptimizelyUserContext user ,
1625- @ Nonnull String key ,
1626- @ Nonnull List <OptimizelyDecideOption > options ) {
1627- ProjectConfig projectConfig = getProjectConfig ();
1628- if (projectConfig == null ) {
1629- return OptimizelyDecision .newErrorDecision (key , user , DecisionMessage .SDK_NOT_READY .reason ());
1630- }
1631-
1632- List <OptimizelyDecideOption > allOptions = getAllOptions (options );
1633- allOptions .remove (OptimizelyDecideOption .ENABLED_FLAGS_ONLY );
1634-
1635- return decideForKeysSync (user , Arrays .asList (key ), allOptions , true ).get (key );
1636- }
1637-
1638- /**
1639- * Returns decision results for multiple flag keys, skipping CMAB logic and using only traditional A/B testing.
1640- * This will be called by mobile apps which will make synchronous decisions only (for backward compatibility with android-sdk)
1641- *
1642- * @param user An OptimizelyUserContext associated with this OptimizelyClient.
1643- * @param keys A list of flag keys for which decisions will be made.
1644- * @param options A list of options for decision-making.
1645- * @return All decision results mapped by flag keys, using traditional A/B testing logic only.
1646- */
1647- Map <String , OptimizelyDecision > decideForKeysSync (@ Nonnull OptimizelyUserContext user ,
1648- @ Nonnull List <String > keys ,
1649- @ Nonnull List <OptimizelyDecideOption > options ) {
1650- return decideForKeysSync (user , keys , options , false );
1651- }
1652-
1653- private Map <String , OptimizelyDecision > decideForKeysSync (@ Nonnull OptimizelyUserContext user ,
1654- @ Nonnull List <String > keys ,
1655- @ Nonnull List <OptimizelyDecideOption > options ,
1656- boolean ignoreDefaultOptions ) {
1657- return decideForKeys (user , keys , options , ignoreDefaultOptions , DecisionPath .WITHOUT_CMAB );
1658- }
1659-
1660- /**
1661- * Returns decision results for all active flag keys, skipping CMAB logic and using only traditional A/B testing.
1662- * This will be called by mobile apps which will make synchronous decisions only (for backward compatibility with android-sdk)
1663- *
1664- * @param user An OptimizelyUserContext associated with this OptimizelyClient.
1665- * @param options A list of options for decision-making.
1666- * @return All decision results mapped by flag keys, using traditional A/B testing logic only.
1667- */
1668- Map <String , OptimizelyDecision > decideAllSync (@ Nonnull OptimizelyUserContext user ,
1669- @ Nonnull List <OptimizelyDecideOption > options ) {
1670- Map <String , OptimizelyDecision > decisionMap = new HashMap <>();
1671-
1672- ProjectConfig projectConfig = getProjectConfig ();
1673- if (projectConfig == null ) {
1674- logger .error ("Optimizely instance is not valid, failing decideAllSync call." );
1675- return decisionMap ;
1676- }
1677-
1678- List <FeatureFlag > allFlags = projectConfig .getFeatureFlags ();
1679- List <String > allFlagKeys = new ArrayList <>();
1680- for (int i = 0 ; i < allFlags .size (); i ++) allFlagKeys .add (allFlags .get (i ).getKey ());
1681-
1682- return decideForKeysSync (user , allFlagKeys , options );
1683- }
1684-
1685- //============ decide async ============//
1686-
1687- /**
1688- * Returns a decision result asynchronously for a given flag key and a user context.
1689- *
1690- * @param userContext The user context to make decisions for
1691- * @param key A flag key for which a decision will be made
1692- * @param callback A callback to invoke when the decision is available
1693- * @param options A list of options for decision-making
1694- */
1695- void decideAsync (@ Nonnull OptimizelyUserContext userContext ,
1696- @ Nonnull String key ,
1697- @ Nonnull List <OptimizelyDecideOption > options ,
1698- @ Nonnull OptimizelyDecisionCallback callback ) {
1699- AsyncDecisionFetcher fetcher = new AsyncDecisionFetcher (userContext , key , options , callback );
1700- fetcher .start ();
1701- }
1702-
1703- /**
1704- * Returns decision results asynchronously for multiple flag keys.
1705- *
1706- * @param userContext The user context to make decisions for
1707- * @param keys A list of flag keys for which decisions will be made
1708- * @param callback A callback to invoke when decisions are available
1709- * @param options A list of options for decision-making
1710- */
1711- void decideForKeysAsync (@ Nonnull OptimizelyUserContext userContext ,
1712- @ Nonnull List <String > keys ,
1713- @ Nonnull List <OptimizelyDecideOption > options ,
1714- @ Nonnull OptimizelyDecisionsCallback callback ) {
1715- AsyncDecisionFetcher fetcher = new AsyncDecisionFetcher (userContext , keys , options , callback );
1716- fetcher .start ();
1717- }
1718-
1719- /**
1720- * Returns decision results asynchronously for all active flag keys.
1721- *
1722- * @param userContext The user context to make decisions for
1723- * @param callback A callback to invoke when decisions are available
1724- * @param options A list of options for decision-making
1725- */
1726- void decideAllAsync (@ Nonnull OptimizelyUserContext userContext ,
1727- @ Nonnull List <OptimizelyDecideOption > options ,
1728- @ Nonnull OptimizelyDecisionsCallback callback ) {
1729- AsyncDecisionFetcher fetcher = new AsyncDecisionFetcher (userContext , options , callback );
1730- fetcher .start ();
1731- }
1732-
17331614 private List <OptimizelyDecideOption > getAllOptions (List <OptimizelyDecideOption > options ) {
17341615 List <OptimizelyDecideOption > copiedOptions = new ArrayList (defaultDecideOptions );
17351616 if (options != null ) {
0 commit comments