Skip to content
Snippets Groups Projects
Commit f74f42b4 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add method to read trunk stable flag" into main

parents 2a6a7359 b0f48902
No related branches found
No related tags found
No related merge requests found
......@@ -64,6 +64,9 @@ public final class DeviceConfigUtils {
@VisibleForTesting
public static final long DEFAULT_PACKAGE_VERSION = 1000;
private static final String CORE_NETWORKING_TRUNK_STABLE_NAMESPACE = "android_core_networking";
private static final String CORE_NETWORKING_TRUNK_STABLE_FLAG_PACKAGE = "com.android.net.flags";
@VisibleForTesting
public static void resetPackageVersionCacheForTest() {
sPackageVersion = -1;
......@@ -420,4 +423,31 @@ public final class DeviceConfigUtils {
return pkgs.get(0).activityInfo.applicationInfo.packageName;
}
/**
* Check whether one specific trunk stable flag in android_core_networking namespace is enabled.
* This method reads trunk stable feature flag value from DeviceConfig directly since
* java_aconfig_library soong module is not available in the mainline branch.
* After the mainline branch support the aconfig soong module, this function must be removed and
* java_aconfig_library must be used instead to check if the feature is enabled.
*
* @param flagName The name of the trunk stable flag
* @return true if this feature is enabled, or false if disabled.
*/
public static boolean isTrunkStableFeatureEnabled(final String flagName) {
return isTrunkStableFeatureEnabled(
CORE_NETWORKING_TRUNK_STABLE_NAMESPACE,
CORE_NETWORKING_TRUNK_STABLE_FLAG_PACKAGE,
flagName
);
}
private static boolean isTrunkStableFeatureEnabled(final String namespace,
final String packageName, final String flagName) {
return DeviceConfig.getBoolean(
namespace,
packageName + "." + flagName,
false /* defaultValue */
);
}
}
......@@ -71,6 +71,10 @@ import java.util.Arrays;
public class DeviceConfigUtilsTest {
private static final String TEST_NAME_SPACE = "connectivity";
private static final String TEST_EXPERIMENT_FLAG = "experiment_flag";
private static final String CORE_NETWORKING_TRUNK_STABLE_NAMESPACE = "android_core_networking";
private static final String TEST_TRUNK_STABLE_FLAG = "trunk_stable_feature";
private static final String TEST_CORE_NETWORKING_TRUNK_STABLE_FLAG_PROPERTY =
"com.android.net.flags.trunk_stable_feature";
private static final int TEST_FLAG_VALUE = 28;
private static final String TEST_FLAG_VALUE_STRING = "28";
private static final int TEST_DEFAULT_FLAG_VALUE = 0;
......@@ -506,4 +510,25 @@ public class DeviceConfigUtilsTest {
verify(mContext, never()).getPackageName();
verify(mPm, never()).getPackageInfo(anyString(), anyInt());
}
@Test
public void testIsCoreNetworkingTrunkStableFeatureEnabled() {
doReturn(null).when(() -> DeviceConfig.getProperty(
CORE_NETWORKING_TRUNK_STABLE_NAMESPACE,
TEST_CORE_NETWORKING_TRUNK_STABLE_FLAG_PROPERTY));
assertFalse(DeviceConfigUtils.isTrunkStableFeatureEnabled(
TEST_TRUNK_STABLE_FLAG));
doReturn("false").when(() -> DeviceConfig.getProperty(
CORE_NETWORKING_TRUNK_STABLE_NAMESPACE,
TEST_CORE_NETWORKING_TRUNK_STABLE_FLAG_PROPERTY));
assertFalse(DeviceConfigUtils.isTrunkStableFeatureEnabled(
TEST_TRUNK_STABLE_FLAG));
doReturn("true").when(() -> DeviceConfig.getProperty(
CORE_NETWORKING_TRUNK_STABLE_NAMESPACE,
TEST_CORE_NETWORKING_TRUNK_STABLE_FLAG_PROPERTY));
assertTrue(DeviceConfigUtils.isTrunkStableFeatureEnabled(
TEST_TRUNK_STABLE_FLAG));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment