aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/experiments
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/tv/experiments')
-rw-r--r--src/com/android/tv/experiments/ExperimentFlag.java32
-rw-r--r--src/com/android/tv/experiments/Experiments.java9
2 files changed, 37 insertions, 4 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..e17fc300 100644
--- a/src/com/android/tv/experiments/Experiments.java
+++ b/src/com/android/tv/experiments/Experiments.java
@@ -23,11 +23,16 @@ 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(
+ true);
+
+ /**
+ * Use network tuner if it is available and there is no other tuner types.
+ */
+ public static final ExperimentFlag<Boolean> NETWORK_TUNER = createFlag(
false);
/**