Loading tools/aconfig/aconfig/src/codegen/java.rs +50 −0 Original line number Diff line number Diff line Loading @@ -893,12 +893,16 @@ mod tests { package com.android.aconfig.test; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.function.BiPredicate; import java.util.function.Predicate; import android.os.Build; /** @hide */ public class CustomFeatureFlags implements FeatureFlags { Loading Loading @@ -941,6 +945,19 @@ mod tests { "" ) ); private Map<String, Integer> mFinalizedFlags = new HashMap<>( Map.ofEntries( Map.entry("", Integer.MAX_VALUE) ) ); public boolean isFlagFinalized(String flagName) { if (!mFinalizedFlags.containsKey(flagName)) { return false; } return Build.VERSION.SDK_INT >= mFinalizedFlags.get(flagName); } } "#; Loading Loading @@ -1089,11 +1106,14 @@ mod tests { package com.android.aconfig.test; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.function.BiPredicate; import java.util.function.Predicate; import android.os.Build; /** @hide */ public class CustomFeatureFlags implements FeatureFlags { Loading Loading @@ -1137,6 +1157,19 @@ mod tests { "" ) ); private Map<String, Integer> mFinalizedFlags = new HashMap<>( Map.ofEntries( Map.entry("", Integer.MAX_VALUE) ) ); public boolean isFlagFinalized(String flagName) { if (!mFinalizedFlags.containsKey(flagName)) { return false; } return Build.VERSION.SDK_INT >= mFinalizedFlags.get(flagName); } } "#; Loading Loading @@ -1296,11 +1329,14 @@ mod tests { package com.android.aconfig.test; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.function.BiPredicate; import java.util.function.Predicate; import android.os.Build; /** @hide */ public class CustomFeatureFlags implements FeatureFlags { Loading Loading @@ -1344,6 +1380,20 @@ mod tests { "" ) ); private Map<String, Integer> mFinalizedFlags = new HashMap<>( Map.ofEntries( Map.entry(Flags.FLAG_DISABLED_RW_EXPORTED, 36), Map.entry("", Integer.MAX_VALUE) ) ); public boolean isFlagFinalized(String flagName) { if (!mFinalizedFlags.containsKey(flagName)) { return false; } return Build.VERSION.SDK_INT >= mFinalizedFlags.get(flagName); } } "#; Loading tools/aconfig/aconfig/templates/CustomFeatureFlags.java.template +27 −0 Original line number Diff line number Diff line Loading @@ -5,11 +5,18 @@ package {package_name}; import android.compat.annotation.UnsupportedAppUsage; {{ -endif }} import java.util.Arrays; {{ -if library_exported }} import java.util.HashMap; import java.util.Map; {{ -endif }} import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.function.BiPredicate; import java.util.function.Predicate; {{ -if library_exported }} import android.os.Build; {{ -endif }} {{ -if single_exported_file }} {{ -if library_exported }} Loading Loading @@ -73,4 +80,24 @@ public class CustomFeatureFlags implements FeatureFlags \{ ""{# The empty string here is to resolve the ending comma #} ) ); {{ -if library_exported }} private Map<String, Integer> mFinalizedFlags = new HashMap<>( Map.ofEntries( {{ -for item in flag_elements }} {{ -if item.finalized_sdk_present }} Map.entry(Flags.FLAG_{item.flag_name_constant_suffix}, {item.finalized_sdk_value}), {{ -endif }} {{ -endfor }} Map.entry("", Integer.MAX_VALUE){# The empty entry to avoid empty entries #} ) ); public boolean isFlagFinalized(String flagName) \{ if (!mFinalizedFlags.containsKey(flagName)) \{ return false; } return Build.VERSION.SDK_INT >= mFinalizedFlags.get(flagName); } {{ -endif }} } tools/aconfig/fake_device_config/src/android/os/Build.java +4 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,9 @@ package android.os; public class Build { public static class VERSION { public static final int SDK_INT = 0; public static final int SDK_INT = placeholder(); private static int placeholder() { throw new UnsupportedOperationException("Stub!"); } } } Loading
tools/aconfig/aconfig/src/codegen/java.rs +50 −0 Original line number Diff line number Diff line Loading @@ -893,12 +893,16 @@ mod tests { package com.android.aconfig.test; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.function.BiPredicate; import java.util.function.Predicate; import android.os.Build; /** @hide */ public class CustomFeatureFlags implements FeatureFlags { Loading Loading @@ -941,6 +945,19 @@ mod tests { "" ) ); private Map<String, Integer> mFinalizedFlags = new HashMap<>( Map.ofEntries( Map.entry("", Integer.MAX_VALUE) ) ); public boolean isFlagFinalized(String flagName) { if (!mFinalizedFlags.containsKey(flagName)) { return false; } return Build.VERSION.SDK_INT >= mFinalizedFlags.get(flagName); } } "#; Loading Loading @@ -1089,11 +1106,14 @@ mod tests { package com.android.aconfig.test; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.function.BiPredicate; import java.util.function.Predicate; import android.os.Build; /** @hide */ public class CustomFeatureFlags implements FeatureFlags { Loading Loading @@ -1137,6 +1157,19 @@ mod tests { "" ) ); private Map<String, Integer> mFinalizedFlags = new HashMap<>( Map.ofEntries( Map.entry("", Integer.MAX_VALUE) ) ); public boolean isFlagFinalized(String flagName) { if (!mFinalizedFlags.containsKey(flagName)) { return false; } return Build.VERSION.SDK_INT >= mFinalizedFlags.get(flagName); } } "#; Loading Loading @@ -1296,11 +1329,14 @@ mod tests { package com.android.aconfig.test; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.function.BiPredicate; import java.util.function.Predicate; import android.os.Build; /** @hide */ public class CustomFeatureFlags implements FeatureFlags { Loading Loading @@ -1344,6 +1380,20 @@ mod tests { "" ) ); private Map<String, Integer> mFinalizedFlags = new HashMap<>( Map.ofEntries( Map.entry(Flags.FLAG_DISABLED_RW_EXPORTED, 36), Map.entry("", Integer.MAX_VALUE) ) ); public boolean isFlagFinalized(String flagName) { if (!mFinalizedFlags.containsKey(flagName)) { return false; } return Build.VERSION.SDK_INT >= mFinalizedFlags.get(flagName); } } "#; Loading
tools/aconfig/aconfig/templates/CustomFeatureFlags.java.template +27 −0 Original line number Diff line number Diff line Loading @@ -5,11 +5,18 @@ package {package_name}; import android.compat.annotation.UnsupportedAppUsage; {{ -endif }} import java.util.Arrays; {{ -if library_exported }} import java.util.HashMap; import java.util.Map; {{ -endif }} import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.function.BiPredicate; import java.util.function.Predicate; {{ -if library_exported }} import android.os.Build; {{ -endif }} {{ -if single_exported_file }} {{ -if library_exported }} Loading Loading @@ -73,4 +80,24 @@ public class CustomFeatureFlags implements FeatureFlags \{ ""{# The empty string here is to resolve the ending comma #} ) ); {{ -if library_exported }} private Map<String, Integer> mFinalizedFlags = new HashMap<>( Map.ofEntries( {{ -for item in flag_elements }} {{ -if item.finalized_sdk_present }} Map.entry(Flags.FLAG_{item.flag_name_constant_suffix}, {item.finalized_sdk_value}), {{ -endif }} {{ -endfor }} Map.entry("", Integer.MAX_VALUE){# The empty entry to avoid empty entries #} ) ); public boolean isFlagFinalized(String flagName) \{ if (!mFinalizedFlags.containsKey(flagName)) \{ return false; } return Build.VERSION.SDK_INT >= mFinalizedFlags.get(flagName); } {{ -endif }} }
tools/aconfig/fake_device_config/src/android/os/Build.java +4 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,9 @@ package android.os; public class Build { public static class VERSION { public static final int SDK_INT = 0; public static final int SDK_INT = placeholder(); private static int placeholder() { throw new UnsupportedOperationException("Stub!"); } } }