|
33 | 33 | import android.support.annotation.Nullable;
|
34 | 34 | import android.support.annotation.RawRes;
|
35 | 35 | import android.support.annotation.RequiresApi;
|
| 36 | +import android.support.annotation.VisibleForTesting; |
36 | 37 |
|
37 | 38 | import com.optimizely.ab.Optimizely;
|
38 | 39 | import com.optimizely.ab.android.event_handler.OptlyEventHandler;
|
@@ -66,6 +67,7 @@ public class OptimizelyManager {
|
66 | 67 | @NonNull private final Logger logger;
|
67 | 68 | @Nullable private DataFileServiceConnection dataFileServiceConnection;
|
68 | 69 | @Nullable private OptimizelyStartListener optimizelyStartListener;
|
| 70 | + @Nullable private UserExperimentRecord userExperimentRecord; |
69 | 71 |
|
70 | 72 | OptimizelyManager(@NonNull String projectId,
|
71 | 73 | @NonNull Long eventHandlerDispatchInterval,
|
@@ -265,6 +267,7 @@ protected void onPostExecute(UserExperimentRecord userExperimentRecord) {
|
265 | 267 |
|
266 | 268 | try {
|
267 | 269 | OptimizelyManager.androidOptimizely = buildOptimizely(context, dataFile, userExperimentRecord);
|
| 270 | + OptimizelyManager.this.userExperimentRecord = userExperimentRecord; |
268 | 271 | logger.info("Sending Optimizely instance to listener");
|
269 | 272 |
|
270 | 273 | if (optimizelyStartListener != null) {
|
@@ -295,6 +298,21 @@ private AndroidOptimizely buildOptimizely(@NonNull Context context, @NonNull Str
|
295 | 298 | return new AndroidOptimizely(optimizely, LoggerFactory.getLogger(AndroidOptimizely.class));
|
296 | 299 | }
|
297 | 300 |
|
| 301 | + @VisibleForTesting |
| 302 | + public UserExperimentRecord getUserExperimentRecord() { |
| 303 | + return userExperimentRecord; |
| 304 | + } |
| 305 | + |
| 306 | + private boolean isAndroidVersionSupported() { |
| 307 | + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { |
| 308 | + return true; |
| 309 | + } else { |
| 310 | + logger.warn("Optimizely will not work on this phone. It's Android version {} is less the minimum supported" + |
| 311 | + "version {}", Build.VERSION.SDK_INT, Build.VERSION_CODES.ICE_CREAM_SANDWICH); |
| 312 | + return false; |
| 313 | + } |
| 314 | + } |
| 315 | + |
298 | 316 | @RequiresApi(api = Build.VERSION_CODES.ICE_CREAM_SANDWICH)
|
299 | 317 | static class OptlyActivityLifecycleCallbacks implements Application.ActivityLifecycleCallbacks {
|
300 | 318 |
|
@@ -486,14 +504,4 @@ public OptimizelyManager build() {
|
486 | 504 |
|
487 | 505 | }
|
488 | 506 | }
|
489 |
| - |
490 |
| - private boolean isAndroidVersionSupported() { |
491 |
| - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { |
492 |
| - return true; |
493 |
| - } else { |
494 |
| - logger.warn("Optimizely will not work on this phone. It's Android version {} is less the minimum supported" + |
495 |
| - "version {}", Build.VERSION.SDK_INT, Build.VERSION_CODES.ICE_CREAM_SANDWICH); |
496 |
| - return false; |
497 |
| - } |
498 |
| - } |
499 | 507 | }
|
0 commit comments