diff options
Diffstat (limited to 'src/com/android/tv/experiments')
-rw-r--r-- | src/com/android/tv/experiments/ExperimentFlag.java | 32 | ||||
-rw-r--r-- | src/com/android/tv/experiments/Experiments.java | 9 |
2 files changed, 36 insertions, 5 deletions
diff --git a/src/com/android/tv/experiments/ExperimentFlag.java b/src/com/android/tv/experiments/ExperimentFlag.java index 8f60c2b5..c0cbd643 100644 --- a/src/com/android/tv/experiments/ExperimentFlag.java +++ b/src/com/android/tv/experiments/ExperimentFlag.java @@ -16,12 +16,19 @@ package com.android.tv.experiments; +import android.support.annotation.VisibleForTesting; /** * Experiments return values based on user, device and other criteria. */ public final class ExperimentFlag<T> { - private final T mDefaultValue; + + private static boolean sAllowOverrides = false; + + @VisibleForTesting + public static void initForTest() { + sAllowOverrides = true; + } /** Returns a boolean experiment */ public static ExperimentFlag<Boolean> createFlag( @@ -30,6 +37,11 @@ public final class ExperimentFlag<T> { defaultValue); } + private final T mDefaultValue; + + private T mOverrideValue = null; + private boolean mOverridden = false; + private ExperimentFlag( T defaultValue) { mDefaultValue = defaultValue; @@ -37,6 +49,22 @@ public final class ExperimentFlag<T> { /** Returns value for this experiment */ public T get() { - return mDefaultValue; + return sAllowOverrides && mOverridden ? mOverrideValue : mDefaultValue; } + + @VisibleForTesting + public void override(T t) { + if (sAllowOverrides) { + mOverridden = true; + mOverrideValue = t; + } + } + + @VisibleForTesting + public void resetOverride() { + mOverridden = false; + } + + + } diff --git a/src/com/android/tv/experiments/Experiments.java b/src/com/android/tv/experiments/Experiments.java index f16c8d1e..53cce979 100644 --- a/src/com/android/tv/experiments/Experiments.java +++ b/src/com/android/tv/experiments/Experiments.java @@ -23,12 +23,15 @@ import com.android.tv.common.BuildConfig; /** * Set of experiments visible in AOSP. * - * <p> - * This file is maintained by hand. + * <p>This file is maintained by hand. */ public final class Experiments { public static final ExperimentFlag<Boolean> CLOUD_EPG = createFlag( - false); + true); + + public static final ExperimentFlag<Boolean> ENABLE_UNRATED_CONTENT_SETTINGS = + createFlag( + false); /** * Allow developer features such as the dev menu and other aids. |