Merge "Remove defaultEnabled arg from isNetworkStackFeatureEnabled" into main
This commit is contained in:
@@ -168,32 +168,18 @@ public final class DeviceConfigUtils {
|
|||||||
*
|
*
|
||||||
* This is useful to ensure that if a module install is rolled back, flags are not left fully
|
* This is useful to ensure that if a module install is rolled back, flags are not left fully
|
||||||
* rolled out on a version where they have not been well tested.
|
* rolled out on a version where they have not been well tested.
|
||||||
|
*
|
||||||
|
* If the feature is disabled by default and enabled by flag push, this method should be used.
|
||||||
|
* If the feature is enabled by default and disabled by flag push (kill switch),
|
||||||
|
* {@link #isNetworkStackFeatureNotChickenedOut(Context, String)} should be used.
|
||||||
|
*
|
||||||
* @param context The global context information about an app environment.
|
* @param context The global context information about an app environment.
|
||||||
* @param name The name of the property to look up.
|
* @param name The name of the property to look up.
|
||||||
* @return true if this feature is enabled, or false if disabled.
|
* @return true if this feature is enabled, or false if disabled.
|
||||||
*/
|
*/
|
||||||
public static boolean isNetworkStackFeatureEnabled(@NonNull Context context,
|
public static boolean isNetworkStackFeatureEnabled(@NonNull Context context,
|
||||||
@NonNull String name) {
|
@NonNull String name) {
|
||||||
return isNetworkStackFeatureEnabled(context, name, false /* defaultEnabled */);
|
return isFeatureEnabled(NAMESPACE_CONNECTIVITY, name, false /* defaultEnabled */,
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check whether or not one specific experimental feature for a particular namespace from
|
|
||||||
* {@link DeviceConfig} is enabled by comparing module package version
|
|
||||||
* with current version of property. If this property version is valid, the corresponding
|
|
||||||
* experimental feature would be enabled, otherwise disabled.
|
|
||||||
*
|
|
||||||
* This is useful to ensure that if a module install is rolled back, flags are not left fully
|
|
||||||
* rolled out on a version where they have not been well tested.
|
|
||||||
* @param context The global context information about an app environment.
|
|
||||||
* @param name The name of the property to look up.
|
|
||||||
* @param defaultEnabled The value to return if the property does not exist or its value is
|
|
||||||
* null.
|
|
||||||
* @return true if this feature is enabled, or false if disabled.
|
|
||||||
*/
|
|
||||||
public static boolean isNetworkStackFeatureEnabled(@NonNull Context context,
|
|
||||||
@NonNull String name, boolean defaultEnabled) {
|
|
||||||
return isFeatureEnabled(NAMESPACE_CONNECTIVITY, name, defaultEnabled,
|
|
||||||
() -> getPackageVersion(context));
|
() -> getPackageVersion(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -305,15 +305,12 @@ public class DeviceConfigUtilsTest {
|
|||||||
assertFalse(DeviceConfigUtils.isNetworkStackFeatureEnabled(mContext, TEST_EXPERIMENT_FLAG));
|
assertFalse(DeviceConfigUtils.isNetworkStackFeatureEnabled(mContext, TEST_EXPERIMENT_FLAG));
|
||||||
assertFalse(DeviceConfigUtils.isTetheringFeatureEnabled(mContext, TEST_EXPERIMENT_FLAG));
|
assertFalse(DeviceConfigUtils.isTetheringFeatureEnabled(mContext, TEST_EXPERIMENT_FLAG));
|
||||||
|
|
||||||
// Follow defaultEnabled if the flag is not set
|
// If the flag is not set feature is disabled
|
||||||
doReturn(null).when(() -> DeviceConfig.getProperty(NAMESPACE_CONNECTIVITY,
|
doReturn(null).when(() -> DeviceConfig.getProperty(NAMESPACE_CONNECTIVITY,
|
||||||
TEST_EXPERIMENT_FLAG));
|
TEST_EXPERIMENT_FLAG));
|
||||||
doReturn(null).when(() -> DeviceConfig.getProperty(NAMESPACE_TETHERING,
|
doReturn(null).when(() -> DeviceConfig.getProperty(NAMESPACE_TETHERING,
|
||||||
TEST_EXPERIMENT_FLAG));
|
TEST_EXPERIMENT_FLAG));
|
||||||
assertFalse(DeviceConfigUtils.isNetworkStackFeatureEnabled(mContext, TEST_EXPERIMENT_FLAG,
|
assertFalse(DeviceConfigUtils.isNetworkStackFeatureEnabled(mContext, TEST_EXPERIMENT_FLAG));
|
||||||
false /* defaultEnabled */));
|
|
||||||
assertTrue(DeviceConfigUtils.isNetworkStackFeatureEnabled(mContext, TEST_EXPERIMENT_FLAG,
|
|
||||||
true /* defaultEnabled */));
|
|
||||||
assertFalse(DeviceConfigUtils.isTetheringFeatureEnabled(mContext, TEST_EXPERIMENT_FLAG));
|
assertFalse(DeviceConfigUtils.isTetheringFeatureEnabled(mContext, TEST_EXPERIMENT_FLAG));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user