#  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 filter_allow_list_intents(file_path):
    try:
        with open(file_path, 'r') as file:
            return [line.strip() for line in file if "//" not in line and line.strip()]

    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()
