-
Notifications
You must be signed in to change notification settings - Fork 384
/
Copy pathAccessbilityIdentifier.swift
243 lines (229 loc) · 6.68 KB
/
AccessbilityIdentifier.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
//
// RelayFilter.swift
// MullvadVPN
//
// Created by Jon Petersson on 2023-12-20.
// Copyright © 2025 Mullvad VPN AB. All rights reserved.
//
import UIKit
public enum AccessibilityIdentifier: Equatable {
// Buttons
case addAccessMethodButton
case accessMethodAddButton
case accessMethodTestButton
case accountButton
case accessMethodUnreachableBackButton
case accessMethodUnreachableSaveButton
case agreeButton
case alertOkButton
case appLogsDoneButton
case appLogsShareButton
case applyButton
case cancelButton
case continueWithLoginButton
case collapseButton
case expandButton
case createAccountButton
case deleteButton
case deviceCellRemoveButton
case disconnectButton
case revokedDeviceLoginButton
case dnsSettingsEditButton
case infoButton
case learnAboutPrivacyButton
case logOutDeviceConfirmButton
case logOutDeviceCancelButton
case loginBarButton
case loginTextFieldButton
case logoutButton
case purchaseButton
case redeemVoucherButton
case restorePurchasesButton
case connectButton
case selectLocationButton
case closeSelectLocationButton
case settingsButton
case startUsingTheAppButton
case problemReportAppLogsButton
case problemReportSendButton
case relayStatusCollapseButton
case settingsDoneButton
case openCustomListsMenuButton
case addNewCustomListButton
case editCustomListButton
case saveCreateCustomListButton
case confirmDeleteCustomListButton
case cancelDeleteCustomListButton
case customListLocationCheckmarkButton
case listCustomListDoneButton
case selectLocationFilterButton
case relayFilterChipCloseButton
case openPortSelectorMenuButton
case cancelPurchaseListButton
case acceptLocalNetworkSharingButton
// Cells
case deviceCell
case accessMethodDirectCell
case accessMethodBridgesCell
case accessMethodEncryptedDNSCell
case accessMethodProtocolSelectionCell
case vpnSettingsCell
case dnsSettingsAddServerCell
case dnsSettingsUseCustomDNSCell
case preferencesCell
case versionCell
case problemReportCell
case faqCell
case apiAccessCell
case relayFilterProviderCell
case wireGuardPortsCell
case wireGuardObfuscationCell
case udpOverTCPPortCell
case quantumResistantTunnelCell
case customListEditNameFieldCell
case customListEditAddOrEditLocationCell
case customListEditDeleteListCell
case locationFilterOwnershipHeaderCell
case locationFilterProvidersHeaderCell
case ownershipMullvadOwnedCell
case ownershipRentedCell
case ownershipAnyCell
case countryLocationCell
case cityLocationCell
case relayLocationCell
case customListLocationCell
case daitaConfirmAlertBackButton
case daitaConfirmAlertEnableButton
case multihopCell
case daitaCell
// Labels
case accountPageDeviceNameLabel
case socks5ServerCell
case socks5PortCell
case accountPagePaidUntilLabel
case addAccessMethodTestStatusReachableLabel
case addAccessMethodTestStatusTestingLabel
case addAccessMethodTestStatusUnreachableLabel
case headerDeviceNameLabel
case connectionStatusConnectedLabel
case connectionStatusConnectingLabel
case connectionStatusNotConnectedLabel
case welcomeAccountNumberLabel
case connectionPanelDetailLabel
case relayFilterChipLabel
// Views
case accessMethodProtocolPickerView
case accessMethodUnreachableAlert
case accountView
case addLocationsView
case addAccessMethodTableView
case apiAccessView
case alertContainerView
case alertTitle
case appLogsView
case changeLogAlert
case deviceManagementView
case editAccessMethodView
case headerBarView
case loginView
case outOfTimeView
case termsOfServiceView
case selectLocationView
case selectLocationViewWrapper
case selectLocationTableView
case settingsTableView
case vpnSettingsTableView
case connectionView
case problemReportView
case problemReportSubmittedView
case revokedDeviceView
case welcomeView
case deleteAccountView
case settingsContainerView
case newCustomListView
case customListEditTableView
case listCustomListsView
case listCustomListsTableView
case editCustomListEditLocationsView
case editCustomListEditLocationsTableView
case relayFilterChipView
case dnsSettingsTableView
case multihopView
case daitaView
// Other UI elements
case accessMethodEnableSwitch
case accessMethodNameTextField
case logOutSpinnerAlertView
case connectionPanelInAddressRow
case connectionPanelOutAddressRow
case connectionPanelOutIpv6AddressRow
case connectionPanelServerLabel
case customSwitch
case customWireGuardPortTextField
case dnsContentBlockersHeaderView
case dnsSettingsEnterIPAddressTextField
case loginStatusIconAuthenticating
case loginStatusIconFailure
case loginStatusIconSuccess
case loginTextField
case selectLocationSearchTextField
case problemReportAppLogsTextView
case problemReportEmailTextField
case problemReportMessageTextView
case deleteAccountTextField
case socks5AuthenticationSwitch
case statusImageView
// DNS settings
case includeAllNetworks
case localNetworkSharing
case dnsSettings
case ipOverrides
case wireGuardCustomPort
case wireGuardObfuscationAutomatic
case wireGuardObfuscationPort
case wireGuardObfuscationOff
case wireGuardObfuscationUdpOverTcp
case wireGuardObfuscationShadowsocks
case wireGuardObfuscationUdpOverTcpPort
case wireGuardObfuscationShadowsocksPort
case wireGuardPort(UInt16?)
case udpOverTcpObfuscationSettings
// Custom DNS
case blockAll
case blockAdvertising
case blockTracking
case blockMalware
case blockGambling
case blockAdultContent
case blockSocialMedia
case useCustomDNS
case addDNSServer
case dnsServer
case dnsServerInfo
// DAITA
case daitaSwitch
case daitaPromptAlert
case daitaDirectOnlySwitch
// Quantum resistance
case quantumResistanceAutomatic
case quantumResistanceOff
case quantumResistanceOn
// Multihop
case multihopSwitch
// WireGuard obfuscation settings
case wireGuardObfuscationUdpOverTcpTable
case wireGuardObfuscationShadowsocksTable
// Error
case unknown
}
extension AccessibilityIdentifier {
public var asString: String {
"\(self)"
}
}
extension UIAccessibilityIdentification {
@MainActor
func setAccessibilityIdentifier(_ value: AccessibilityIdentifier?) {
accessibilityIdentifier = value.map(\.asString)
}
}