fix what you see wrong with my unity android script

using System.Collections.Generic;
using System.IO;
using TMPro;
using UnityEngine;
using Michsky.UI.Reach;
using UnityEngine.UI;

public class LOADSAVE : MonoBehaviour
{
    public string FinalPath;
    public TMP_InputField AgentName;
    public TMP_InputField AgentPerson;
    public Michsky.UI.Reach.Dropdown SelectedAgent;
    public string RefVoice;
    public TMP_InputField Transcription;

    public string baseFolder = string.Empty;
    public string agentFolderName = string.Empty;
    public string agentFolderPath = string.Empty;

    public void Start()
    {
        baseFolder = Path.Combine(Application.persistentDataPath, "Agent Presets");
    }

    public void LoadFileVoice()
    {
        // Use NativeFilePicker.ConvertExtensionToFileType with .wav extension
        string wavFileType = NativeFilePicker.ConvertExtensionToFileType(".wav");

        NativeFilePicker.PickFile((path) =>
        {
            if (string.IsNullOrEmpty(path))
            {
                Debug.Log("Operation cancelled");
                // Show some kind of window here if needed
                return;
            }

            Debug.Log($"Selected file: {path}");

            FinalPath = path;
            RefVoice = path;

            try
            {
                // Determine destination folder: "Agent Presets/[AgentName]"
                baseFolder = Path.Combine(Application.persistentDataPath, "Agent Presets");
                agentFolderName = SanitizeFileName(AgentName.text);
                agentFolderPath = Path.Combine(baseFolder, agentFolderName);

                if (!Directory.Exists(agentFolderPath))
                {
                    Directory.CreateDirectory(agentFolderPath);
                }

                string destFilePath = Path.Combine(agentFolderPath, "Agent_Voice.wav");

                // Copy selected wav file, overwrite if exists
                File.Copy(path, destFilePath, true);

                Debug.Log($"Voice file copied to: {destFilePath}");

                // TODO: Show confirmation UI window here

            }
            catch (System.Exception ex)
            {
                Debug.LogError($"Failed to copy voice file: {ex.Message}");
                // Show error UI window here if needed
            }
        }, new string[] { wavFileType });
    }

    public void SaveFile(string Data)
    {
        string filePath = Path.Combine(Application.temporaryCachePath, "test.wav");

        byte[] bytes = File.ReadAllBytes(Data);
        File.WriteAllBytes(filePath, bytes);

        // Call ExportFile without assignment because it returns void
        NativeFilePicker.ExportFile(filePath, (success) =>
        {
            // Show some kind of window here.
        });
    }

    public void SaveAgentTranscription()
    {
        try
        {
            // Base folder "Agent Presets"
            string baseFolder = Path.Combine(Application.persistentDataPath, "Agent Presets");

            if (!Directory.Exists(baseFolder))
                Directory.CreateDirectory(baseFolder);

            // Sanitize agent folder name
            string agentFolderName = SanitizeFileName(AgentName.text);
            string agentFolderPath = Path.Combine(baseFolder, agentFolderName);

            if (!Directory.Exists(agentFolderPath))
                Directory.CreateDirectory(agentFolderPath);

            string filePath = Path.Combine(agentFolderPath, "Agent_Transcription.txt");

            // Write transcription text to file
            File.WriteAllText(filePath, Transcription.text);

            Debug.Log($"Transcription saved successfully at: {filePath}");

            // TODO: Show UI popup or notify the user here

        }
        catch (System.Exception ex)
        {
            Debug.LogError($"Failed to save transcription: {ex}");
            // TODO: Show error UI popup
        }
    }

    public void SaveFileAgent()
    {
        try
        {
            string baseFolder = Path.Combine(Application.persistentDataPath, "Agent Presets");

            if (!Directory.Exists(baseFolder))
                Directory.CreateDirectory(baseFolder);

            string agentFolderName = SanitizeFileName(AgentName.text);
            string agentFolderPath = Path.Combine(baseFolder, agentFolderName);

            if (!Directory.Exists(agentFolderPath))
                Directory.CreateDirectory(agentFolderPath);

            string fileName = SanitizeFileName(AgentName.text + "_INFO") + ".txt";
            string filePath = Path.Combine(agentFolderPath, fileName);

            List<string> lines = new List<string>
            {
                AgentName.text,
                AgentPerson.text,
            };

            File.WriteAllLines(filePath, lines);

            Debug.Log($"File saved successfully at: {filePath}");
        }
        catch (System.Exception ex)
        {
            Debug.LogError($"Failed to save file: {ex}");
        }
    }

    public void LoadAgentsInDrop()
    {
        string baseFolder = Path.Combine(Application.persistentDataPath, "Agent Presets");

        if (!Directory.Exists(baseFolder))
        {
            Debug.LogWarning($"Agent Presets folder does not exist at: {baseFolder}");
            return;
        }

        // Clear existing dropdown items first
        SelectedAgent.items.Clear();

        string[] agentFolders = Directory.GetDirectories(baseFolder);
        if (agentFolders.Length == 0)
        {
            Debug.Log("No agent folders found in Agent Presets.");
        }

        foreach (string folderPath in agentFolders)
        {
            string folderName = Path.GetFileName(folderPath);
            SelectedAgent.CreateNewItem(folderName);
        }
    }

    public void RecordAgentVoice()
    {
        // make some kind of toggle in here that lets me hold down the button to record and when I lift up the button it saves the recording in the proper Agent Presets voice folder saving the recording as Agent_Voice.wav
    }

    private string SanitizeFileName(string filename)
    {
        foreach (char c in Path.GetInvalidFileNameChars())
            filename = filename.Replace(c.ToString(), "");
        return filename;
    }
}