//
//  © 2019-2020 Qualcomm Technologies, Inc. and/or its subsidiaries. All rights reserved.
//

import UIKit

struct Accessibility {
}

extension Accessibility {
    struct LaunchScreen {
        static let acceptButton = "Accept"
        static let viewTermsButton = "View Terms"
    }

    struct HomeScreen {
        static let navBarOptionsButton = "General Options"
        static let itemsList = "Items List"

        struct CellSuffix {
            static let row = "Row"
            static let optionsButton = "Options"
            static let playButton = "Play"
            static let pauseButton = "Pause"
        }

        struct SlideUpPanel {
            static let editGroupButton = "Edit Group"
            static let createGroupButton = "Create Group"
            static let manageBluetoothDevicesButton = "Manage Bluetooth Devices"
            static let pairBluetoothDeviceButton = "Pair Bluetooth Device"
            static let manageZigbeeDevicesButton = "Manage Zigbee Devices"
            static let addZigbeeDeviceButton = "Add Zigbee Device"
            static let createZigbeeGroupButton = "Create Zigbee Group"
            static let showSettingsButton = "Show Settings"

            static let viewAlphabeticallyButton = "View Alphabetically"
            static let viewByTypeButton = "View By Type"
            static let viewNetworkMapButton = "View Network Map"
            static let showAboutButton = "Show About"
            static let selectedSuffix = "Selected"
        }
    }

    struct Navigation {
        static let backButton = "Back"
        static let modalCloseButton = "Modal Close"
    }

    struct MediaLibrary {
        static let navBarSearchButton = "Search"

        struct CellSuffix {
			static let optionsButton = "Options" // Not currently used
            static let selectedSuffix = "Selected"
        }
    }

    struct SearchScreen {
        static let searchText = "Search Text"
        static let cancel = "Cancel"
    }

    struct QueueScreen {
        static let closeButton = "Close"
        static let nowPlayingButton = "Now Playing"
    }

    struct SpeakerVolumesScreen {
        static let speakerList = "Speaker Volumes"
        struct Cell {
            static let volumeSuffix = "Volume"
        }
    }

    struct ChooseMusicSourceScreen {
        static let categoriesList = "Media Types and Other Sources List"
        struct Row {
            static let favorites = "Favorites"
            static let artists = "Artists"
            static let albums = "Artists"
            static let songs = "Songs"
            static let genres = "Genres"
            static let playlists = "Playlists"
            static let thirdParty = "Third Party Services"
            static let otherInputs = "Other Input Sources"
            static let mediaServers = "Media Servers"
        }
    }

    struct DeviceDetailScreen {
        static let expand = "Expand"
        static let collapse = "Collapse"
        static let group = "Group"

        static let editGroup = "Edit Group"
        static let createGroup = "Create Group"
        static let audioSources = "Audio Sources"
        static let outputDestinations = "Output Destinations"
        static let surroundSystem = "Create Surround System"
    }

    struct GroupingScreen {
        static let speakersList = "Available Speakers"
        static let saveButton = "Save"
        static let changeName = "Change Group Name"
        static let deleteGroup = "Delete Group"
    }

    struct GroupNameScreen {
		static let namesList = "Group Name Options"
        static let useCustomName = "Use Custom Name"
        static let useDefaultName = "Use Default Name"
        static let customNameTextField = "Custom Name"
    }

    struct ThirdPartyServiceScreen {
		static let servicesList = "Third Party Services"
    }
}

// MARK:- Players
extension Accessibility {
    struct MiniPlayer {
        static let playButton = "Mini Player Play"
        static let pauseButton = "Mini Player Pause"
        static let expandButton = "Mini Player Expand"
        static let songTitleLabelPrefix = "Mini Player Song Title"
        static let artistLabelPrefix = "Mini Player Artist"
        static let albumLabelPrefix = "Mini Player Album"
    }

    struct NowPlayingScreen {
        static let closeButton = "Close"
        static let queueButton = "Queue"
        static let playButton = "Play"
        static let pauseButton = "Pause"
        static let skipForwardButton = "Skip Forward"
        static let skipBackwardButton = "Skip Backward"
        static let seekBar = "Seek Bar"
        static let volumeSlider = "Volume"
        static let makeFavoriteButton = "Make Favorite"
        static let removeFavoriteButton = "Remove Favorite"
        static let speakerVolumesButton = "Speaker Volumes"
        static let enableShuffleButton = "Turn On Shuffle"
        static let disableShuffleButton = "Turn Off Shuffle"
        static let repeatButtonOff = "Repeat Off Selected"
        static let repeatButtonOneSelected = "Repeat One Selected"
        static let repeatButtonAllSelected = "Repeat All Selected"

        static let songTitleLabelPrefix = "Song Title"
        static let artistLabelPrefix = "Artist"
        static let albumLabelPrefix = "Album"
    }
}

// MARK:- Settings
extension Accessibility {
    struct SettingsScreens {
        static let selectedSuffix = "Selected"
    }

    struct MainSettingsScreen {
        static let settingsList = "Settings"
        static let speakerName = "Change Speaker Name"
        static let audioSettings = "Audio Effects Settings"
        static let voiceControl = "Voice Control Settings"
        static let bluetooth = "Bluetooth Device Settings"
        static let zigbee = "Smart Home Device Settings"
        static let poweredByAC = "Powered By AC"
        static let poweredByBattery = "Powered By Battery"
        static let wiredNetwork = "Wired Network"
        static let restart = "Restart Device"
        static let factoryReset = "Factory Reset"

        static let wirelessNetworkSSIDPrefix = "Wireless Network SSID"
        static let wifiSignalStrengthPrefix = "Wifi Signal Strength"
        static let ipAddressPrefix = "IP Address"
        static let macAddressPrefix = "MAC Address"
    }

    struct VoiceUIServices {
        // Service names and states are determined in VoiceUIHelper
        static let avsServiceName = "Alexa Voice Services"
        static let modularServiceName = "Modular Client"
        static let cortanaServiceName = "Cortana Client"
        static let gvaServiceName = "Google Voice Assistant"

        static let notLinkedStatus = "Not linked"
        static let enabledListeningStatus = "Enabled, listening"
        static let enabledNotListeningStatus = "Enabled, not listening"

        static let avsWakeword = "Alexa"
        static let gvaWakeword = "OK Google"
        static let cortanaWakeword = "Hey Cortana"
        static let modularWakeword = "Hey Snapdragon"

    }

    struct VoiceUISettingsScreen {
        static let masterSettingsList = "Voice Control Settings"
        static let defaultServiceRow = "Default Voice Service"
    }

    struct VoiceUIServiceSettingsScreen {
        static let serviceSettingsList = "Service Settings"
        static let serviceEnabledSuffix = "Eabled"
        static let serviceDisabledSuffix = "Disabled"
        static let countryPrefix = "Country"
        static let languagePrefix = "Language"
        static let signOut = "Sign Out"
    }

    struct VoiceUIDefaultServiceScreen {
        static let servicesList = "Available Voice Services"
    }

    struct VoiceUIModularLanguageScreen {
        static let languagesList = "Available Languages"
    }

    struct VoiceUIModularAlertSoundScreen {
        static let soundsList = "Available Sounds"
    }

    struct AVSOnboardingIntroScreen {
        static let signInButton = "Sign in to Amazon"
    }

    struct AVSOnboardingShowCodeScreen {
        static let gotoAmazonButton = "Go to Amazon"
    }

    struct AVSCountrySelectionScreen {
        static let countryList = "Available Countries"
    }

    struct BluetoothSettingsScreen {
        static let listTitle = "Bluetooth Settings"
        static let bluetoothEnabled = "Bluetooth Enabled"
        static let bluetoothDisabled = "Bluetooth Disabled"
        static let discoverableEnabled = "Discoverable Enabled"
        static let discoverableDisabled = "Discoverable Disabled"
        static let pairDeviceButton = "Pair Bluetooth Device"
        static let connectedSuffix = "Connected"
    }

    struct BluetoothDiscoveredDevicesScreen {
		static let listTitle = "Bluetooth Settings"
    }

    struct ZigbeeSettingsScreen {
        static let listTitle = "Smart Home Device Settings"
        static let zigbeeEnabled = "Zigbee Enabled"
        static let zigbeeDisabled = "Zigbee Disabled"
        static let coordinatorSelected = "Speaker is Coordinator"
        static let coordinatorNotSelected = "Speaker is not Coordinator"
        static let addDeviceButton = "Add Zigbee Devices"
    }

    struct AudioEffectsSettingsScreen {
        static let listTitle = "Audio Effects Settings"

        struct Bassboost {
            static let enabled = "Bass Boost Enabled"
            static let disabled = "Bass Boost Disabled"
            static let slider = "Bass Boost Effect Level"
        }

        struct Dolby {
            static let enabled = "Dolby Enabled"
            static let disabled = "Dolby Disabled"
            static let modePrefix = "Selected Dolby Mode"
        }

        struct DTS {
            static let enabled = "Dolby Enabled"
            static let disabled = "Dolby Disabled"
            static let dialogClarityEnabled = "Dialog Clarity Enabled"
            static let dialogClarityDisabled = "Dialog Clarity Disabled"
            static let modePrefix = "Selected DTS Virtual X Mode"
        }

        struct Trumpet {
            static let enabled = "Trumpet Enabled"
            static let disabled = "Trumpet Disabled"
            static let virtualizationEnabled = "Virtualization Enabled"
            static let virtualizationDisabled = "Virtualization Disabled"
            static let presetPrefix = "Selected Trumpet Preset"
            static let gainSlider = "Trumpet Gain Level"
            static let eqSliderPrefix = "Trumpet Equalizer Level For"
        }

        struct EQ {
            static let enabled = "Equalizer Enabled"
            static let disabled = "Equalizer Disabled"
            static let presetPrefix = "Selected Equalizer Preset"
            static let eqSliderPrefix = "Trumpet Equalizer Level For"
        }

        struct Reverb {
            static let enabled = "Reverb Enabled"
            static let disabled = "Reverb Disabled"
            static let presetPrefix = "Selected Reverb Preset"
        }

        struct MeloD {
            struct XOverFilter {
                static let enabled = "Cross Over Filter Enabled"
				static let disabled = "Cross Over Filter Disabled"
            }

            struct MultibandLimiter {
                static let enabled = "Multiband Limiter Enabled"
                static let disabled = "Multiband Limiter Disabled"
            }

            struct PEQ {
                static let enabled = "Parametric Equalizer Enabled"
                static let disabled = "Parametric Equalizer Disabled"
            }

            struct VoicePlus {
                static let enabled = "Voice Plus Enabled"
                static let disabled = "Voice Plus Disabled"
                static let presetPrefix = "Selected Effect Level"
            }

            struct AroundPro {
                static let enabled = "Around Pro Enabled"
                static let disabled = "Around Pro Disabled"
                static let strengthPrefix = "Selected Effect Strength"
                static let modePrefix = "Selected Center Mode"
            }

            struct Matrix {
                static let enabled = "Matrix Enabled"
                static let disabled = "Matrix Disabled"
                static let modePrefix = "Selected Decoder Mode"
            }

            struct DRC {
                static let enabled = "DRC Enabled"
                static let disabled = "DRC Disabled"
                static let modePrefix = "Selected DRC Mode"
                static let slider = "DRC Effect Level"
            }

            struct Tone {
                static let enabled = "Tone Enabled"
                static let disabled = "Tone Disabled"
                static let loudnessSlider = "Loudness"
                static let bassSlider = "Bass"
                static let trebleSlider = "Treble"
            }

            struct BassPlus {
                static let enabled = "Bass Plus Enabled"
                static let disabled = "Bass Plus Disabled"
                static let strengthSlider = "Strength"
                static let harmonicSlider = "Harmonic"
            }

            struct BassManagement {
                static let enabled = "Bass Plus Enabled"
                static let disabled = "Bass Plus Disabled"
                static let subwooferEnabled = "Enabled for Subwoofer"
                static let subwooferDisabled = "Disabled for Subwoofer"

                static let leftSurroundSize = "Left Surround Size"
                static let rightSurroundSize = "Right Surround Size"

                static let leftSurroundHeightEnabled = "Left Surround Height Enabled"
                static let leftSurroundHeightDisabled = "Left Surround Height Disabled"
                static let rightSurroundHeightEnabled = "Right Surround Height Enabled"
                static let rightSurroundHeightDisabled = "Right Surround Height Disabled"

                static let cornerSlider = "Corner Frequency"
            }
        }
    }

    struct AudioEffectsReverbPresetsScreen {
        static let listTitle = "Available Presets"
    }

    struct AudioEffectsEQPresetsScreen {
        static let listTitle = "Available Presets"
    }

    struct AudioEffectsTrumpetPresetsScreen {
        static let listTitle = "Available Presets"
    }

    struct AudioEffectsDolbyModesScreen {
        static let listTitle = "Available Dolby Modes"
    }

    struct AudioEffectsDTSModesScreen {
        static let listTitle = "Available DTS Modes"
    }
}

