summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Zhi Dou <zhidou@google.com> 2024-07-19 20:37:53 +0000
committer Zhi Dou <zhidou@google.com> 2024-07-19 20:37:53 +0000
commit1edd4485c63ab441cfb151d72b3c73b71e999d0c (patch)
treea0165d145c17e57963e296a8335422432ce7ed4b
parentca4c83efa39052a99bc3d680f14390fa5dc60a64 (diff)
only use new storage for read write
Test: atest aconfig.test.java Bug: 349874828 Change-Id: I5af9fa6243b8b8a157f03242e6e5a411ced7be44
-rw-r--r--tools/aconfig/aconfig/src/codegen/java.rs6
-rw-r--r--tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template18
2 files changed, 18 insertions, 6 deletions
diff --git a/tools/aconfig/aconfig/src/codegen/java.rs b/tools/aconfig/aconfig/src/codegen/java.rs
index ec22ebc6c4..3523b50b7b 100644
--- a/tools/aconfig/aconfig/src/codegen/java.rs
+++ b/tools/aconfig/aconfig/src/codegen/java.rs
@@ -677,7 +677,7 @@ mod tests {
modified_parsed_flags.into_iter(),
mode,
flag_ids,
- false,
+ true,
)
.unwrap();
@@ -870,7 +870,7 @@ mod tests {
modified_parsed_flags.into_iter(),
mode,
flag_ids,
- false,
+ true,
)
.unwrap();
@@ -991,7 +991,7 @@ mod tests {
modified_parsed_flags.into_iter(),
mode,
flag_ids,
- false,
+ true,
)
.unwrap();
let expect_featureflags_content = r#"
diff --git a/tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template b/tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template
index cd2e3db2d0..a6e1cf3999 100644
--- a/tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template
+++ b/tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template
@@ -10,12 +10,14 @@ import android.provider.DeviceConfig;
import android.provider.DeviceConfig.Properties;
+{{ -if not library_exported }}
{{ -if allow_instrumentation }}
import android.aconfig.storage.StorageInternalReader;
import android.util.Log;
import java.io.File;
{{ -endif }}
+{{ -endif }}
{{ -endif }}
/** @hide */
@@ -30,6 +32,7 @@ public final class FeatureFlagsImpl implements FeatureFlags \{
private static boolean {flag.method_name} = {flag.default_value};
{{ -endif }}
{{ -endfor }}
+{{ -if not library_exported }}
{{ -if allow_instrumentation }}
StorageInternalReader reader;
boolean readFromNewStorage;
@@ -40,23 +43,31 @@ public final class FeatureFlagsImpl implements FeatureFlags \{
File file = new File("/metadata/aconfig_test_missions/mission_1");
if (file.exists()) \{
readFromNewStorage = true;
- reader = new StorageInternalReader("{container}", "{package_name}");
+ try \{
+ reader = new StorageInternalReader("{container}", "{package_name}");
+ } catch(Exception e) \{
+ reader = null;
+ }
}
}
{{ -endif }}
+{{ -endif }}
{{ for namespace_with_flags in namespace_flags }}
private void load_overrides_{namespace_with_flags.namespace}() \{
try \{
+{{ -if not library_exported }}
{{ -if allow_instrumentation }}
boolean val;
{{ -endif }}
+{{ -endif }}
Properties properties = DeviceConfig.getProperties("{namespace_with_flags.namespace}");
{{ -for flag in namespace_with_flags.flags }}
{{ -if flag.is_read_write }}
{flag.method_name} =
properties.getBoolean(Flags.FLAG_{flag.flag_name_constant_suffix}, {flag.default_value});
+{{ -if not library_exported }}
{{ -if allow_instrumentation }}
- if (readFromNewStorage) \{
+ if (readFromNewStorage && reader != null) \{
try \{
val = reader.getBooleanFlagValue({flag.flag_offset});
if (val == {flag.method_name}) \{
@@ -67,11 +78,12 @@ public final class FeatureFlagsImpl implements FeatureFlags \{
val, {flag.method_name}));
}
} catch (Exception e) \{
- Log.e(TAG,"error: failed to read flag value of {flag.method_name}");
+ Log.e(TAG,"error: failed to read flag value of {flag.method_name}", e);
}
}
{{ -endif }}
{{ -endif }}
+{{ -endif }}
{{ -endfor }}
} catch (NullPointerException e) \{
throw new RuntimeException(