|
25 | 25 | import com.optimizely.ab.android.sdk.OptimizelyStartListener;
|
26 | 26 | import com.optimizely.ab.config.Variation;
|
27 | 27 | import com.optimizely.ab.config.parser.JsonParseException;
|
| 28 | +import com.optimizely.ab.notification.UpdateConfigNotification; |
| 29 | +import com.optimizely.ab.optimizelyconfig.OptimizelyAttribute; |
| 30 | +import com.optimizely.ab.optimizelyconfig.OptimizelyAudience; |
| 31 | +import com.optimizely.ab.optimizelyconfig.OptimizelyConfig; |
| 32 | +import com.optimizely.ab.optimizelyconfig.OptimizelyEvent; |
| 33 | +import com.optimizely.ab.optimizelyconfig.OptimizelyExperiment; |
| 34 | +import com.optimizely.ab.optimizelyconfig.OptimizelyFeature; |
| 35 | +import com.optimizely.ab.optimizelyconfig.OptimizelyVariable; |
| 36 | +import com.optimizely.ab.optimizelyconfig.OptimizelyVariation; |
28 | 37 | import com.optimizely.ab.optimizelydecision.OptimizelyDecideOption;
|
29 | 38 | import com.optimizely.ab.optimizelydecision.OptimizelyDecision;
|
30 | 39 | import com.optimizely.ab.optimizelyjson.OptimizelyJSON;
|
@@ -177,4 +186,76 @@ static public void samplesForInitialization(Context context) {
|
177 | 186 |
|
178 | 187 | }
|
179 | 188 |
|
| 189 | + static public void samplesForOptimizelyConfig(Context context) { |
| 190 | + |
| 191 | + OptimizelyManager optimizelyManager = OptimizelyManager.builder() |
| 192 | + .withSDKKey("FCnSegiEkRry9rhVMroit4") |
| 193 | + .build(context); |
| 194 | + optimizelyManager.initialize(context, R.raw.datafile, optimizelyClient -> { |
| 195 | + |
| 196 | + OptimizelyConfig config = optimizelyClient.getOptimizelyConfig(); |
| 197 | + |
| 198 | + System.out.println("[OptimizelyConfig] revision = " + config.getRevision()); |
| 199 | + System.out.println("[OptimizelyConfig] sdkKey = " + config.getSdkKey()); |
| 200 | + System.out.println("[OptimizelyConfig] environmentKey = " + config.getEnvironmentKey()); |
| 201 | + |
| 202 | + System.out.println("[OptimizelyConfig] attributes:"); |
| 203 | + for (OptimizelyAttribute attribute: config.getAttributes()) { |
| 204 | + System.out.println("[OptimizelyAttribute] -- (id, key) = " + attribute.getId() + ", " + attribute.getKey()); |
| 205 | + } |
| 206 | + |
| 207 | + System.out.println("[OptimizelyConfig] audiences:"); |
| 208 | + for (OptimizelyAudience audience: config.getAudiences()) { |
| 209 | + System.out.println("[OptimizelyAudience] -- (id, name, conditions) = " + audience.getId() + ", " + audience.getName() + ", " + audience.getConditions()); |
| 210 | + } |
| 211 | + |
| 212 | + System.out.println("[OptimizelyConfig] events:"); |
| 213 | + for (OptimizelyEvent event: config.getEvents()) { |
| 214 | + System.out.println("[OptimizelyEvent] -- (id, key, experimentIds) = " + event.getId() + ", " + event.getKey() + ", " + Arrays.toString(event.getExperimentIds().toArray())); |
| 215 | + } |
| 216 | + |
| 217 | + // all features |
| 218 | + for (String flagKey: config.getFeaturesMap().keySet()) { |
| 219 | + OptimizelyFeature flag = config.getFeaturesMap().get(flagKey); |
| 220 | + |
| 221 | + for (OptimizelyExperiment experiment: flag.getExperimentRules()) { |
| 222 | + System.out.println("[OptimizelyExperiment] -- Experiment Rule Key: " + experiment.getKey()); |
| 223 | + System.out.println("[OptimizelyExperiment] -- Experiment Audiences: " + experiment.getAudiences()); |
| 224 | + |
| 225 | + Map<String, OptimizelyVariation> variationsMap = experiment.getVariationsMap(); |
| 226 | + for (String variationKey: variationsMap.keySet()) { |
| 227 | + OptimizelyVariation variation = variationsMap.get(variationKey); |
| 228 | + System.out.println("[OptimizelyVariation] -- variation = { key: " + variationKey + ", id: " + variation.getId() + ", featureEnabled: " + variation.getFeatureEnabled() + " }"); |
| 229 | + // use variation data here... |
| 230 | + |
| 231 | + Map<String, OptimizelyVariable> optimizelyVariableMap = variation.getVariablesMap(); |
| 232 | + for (String variableKey: optimizelyVariableMap.keySet()) { |
| 233 | + OptimizelyVariable variable = optimizelyVariableMap.get(variableKey); |
| 234 | + System.out.println("[OptimizelyVariable] -- variable = key: " + variableKey + ", value: " + variable.getValue()); |
| 235 | + // use variable data here... |
| 236 | + |
| 237 | + } |
| 238 | + } |
| 239 | + |
| 240 | + } |
| 241 | + |
| 242 | + for (OptimizelyExperiment delivery: flag.getDeliveryRules()) { |
| 243 | + System.out.println("[OptimizelyExperiment] -- Delivery Rule Key: " + delivery.getKey()); |
| 244 | + System.out.println("[OptimizelyExperiment] -- Delivery Audiences: " + delivery.getAudiences()); |
| 245 | + } |
| 246 | + Map<String, OptimizelyExperiment> experimentsMap = flag.getExperimentsMap(); |
| 247 | + // feature flag experiments |
| 248 | + Set<String> experimentKeys = experimentsMap.keySet(); |
| 249 | + |
| 250 | + // use experiments and other feature flag data here... |
| 251 | + |
| 252 | + } |
| 253 | + |
| 254 | + // listen to OPTIMIZELY_CONFIG_UPDATE to get updated data |
| 255 | + optimizelyClient.getNotificationCenter().addNotificationHandler(UpdateConfigNotification.class, handler -> { |
| 256 | + OptimizelyConfig newConfig = optimizelyClient.getOptimizelyConfig(); |
| 257 | + }); |
| 258 | + }); |
| 259 | + } |
| 260 | + |
180 | 261 | }
|
0 commit comments