# Copyright (C) 2024 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import re import os """ Script used to filter a file for public static final string values that match the provided format. """ def filter_javadoc_fields(file_path, format, exclude_hidden): try: with open(file_path, 'r') as file: content = file.read() pattern = fr'/\*\*(.*?)\*/\s*(.*?)public static final String\s+({format}\w+)\s*=\s*"(.*?)";' matches = re.findall(pattern, content, re.DOTALL) results = [] for match in matches: java_doc, tag, field_name, value = match if (exclude_hidden and "@hide" not in java_doc) or not exclude_hidden: results.append(value) return results except FileNotFoundError: print(f"Error: File '{file_path}' not found.") except Exception as e: print(f"An error occurred: {e}") def main(): file_path = os.environ.get('ANDROID_BUILD_TOP') + '/frameworks/base/core/java/android/provider/Settings.java' results = filter_javadoc_fields(file_path, "ACTION_", True) if __name__ == '__main__': main()