|
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