Merge "Remove defaultEnabled arg from isNetworkStackFeatureEnabled" into main

This commit is contained in:
Treehugger Robot
2023-10-03 11:51:32 +00:00
committed by Gerrit Code Review
2 changed files with 8 additions and 25 deletions

View File

@@ -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));
} }

View File

@@ -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));
} }