Camera metadata: Support system API for synthetic keys

- Add 'fwk_system_public' visiblity to camera metadata generator

Flag: EXEMPT python code
Test: New test key generated as expected
Bug: 265196098
Change-Id: I23547eba6268c454017f32100d391aa174f0db21
diff --git a/camera/docs/CameraMetadataKeys.mako b/camera/docs/CameraMetadataKeys.mako
index 032b78c..1de389a 100644
--- a/camera/docs/CameraMetadataKeys.mako
+++ b/camera/docs/CameraMetadataKeys.mako
@@ -55,7 +55,7 @@
      * @deprecated
 ${entry.deprecation_description | javadoc(metadata)}
   % endif
-  % if entry.applied_visibility in ('hidden', 'ndk_public', 'fwk_only', 'extension'):
+  % if entry.applied_visibility in ('hidden', 'ndk_public', 'fwk_only', 'extension', 'fwk_system_public'):
      * @hide
   % endif
      */
@@ -66,6 +66,10 @@
     @PublicKey
     @NonNull
   % endif
+  % if entry.applied_visibility == 'fwk_system_public':
+    @SystemApi
+    @NonNull
+  % endif
   % if entry.synthetic:
     @SyntheticKey
   % endif
@@ -85,19 +89,20 @@
   % for section in outer_namespace.sections:
     % if section.find_first(lambda x: isinstance(x, metadata_model.Entry) and x.kind == xml_name) and \
          any_visible(section, xml_name, ('public','hidden','ndk_public','java_public','fwk_only',\
-             'fwk_java_public','fwk_public','extension') ):
+             'fwk_java_public','fwk_public','extension','fwk_system_public') ):
       % for inner_namespace in get_children_by_filtering_kind(section, xml_name, 'namespaces'):
 ## We only support 1 level of inner namespace, i.e. android.a.b and android.a.b.c works, but not android.a.b.c.d
 ## If we need to support more, we should use a recursive function here instead.. but the indentation gets trickier.
         % for entry in filter_visibility(inner_namespace.merged_entries, ('hidden','public',\
-              'ndk_public','java_public','fwk_only','fwk_java_public','fwk_public','extension')):
+              'ndk_public','java_public','fwk_only','fwk_java_public','fwk_public',\
+              'extension','fwk_system_public')):
 ${generate_key(entry)}
        % endfor
     % endfor
     % for entry in filter_visibility( \
         get_children_by_filtering_kind(section, xml_name, 'merged_entries'), \
                ('hidden', 'public', 'ndk_public', 'java_public', 'fwk_only', 'fwk_java_public',\
-               'fwk_public','extension')):
+               'fwk_public','extension','fwk_system_public')):
 ${generate_key(entry)}
     % endfor
     % endif