diff --git a/Sources/BraveVPN/BraveVPNContactFormViewController.swift b/Sources/BraveVPN/BraveVPNContactFormViewController.swift index bc899a4e2a0..6b9ef4fe727 100644 --- a/Sources/BraveVPN/BraveVPNContactFormViewController.swift +++ b/Sources/BraveVPN/BraveVPNContactFormViewController.swift @@ -207,59 +207,27 @@ class BraveVPNContactFormViewController: TableViewController { } })), cellClass: MultilineSubtitleCell.self) - var section = Section(rows: [ + let section = Section(rows: [ hostnameRow, tunnelProtocolRow, subscriptionTypeRow, receiptRow, appVersionRow, timezoneRow, networkTypeRow, carrierRow, errorLogs ]) - // MARK: Issue - var issueRow = - Row( - text: Strings.VPN.contactFormIssue, detailText: IssueType.other.displayString, - accessory: .disclosureIndicator, cellClass: MultilineSubtitleCell.self) - - let optionChanged = { - [weak self] - (vc: OptionSelectionViewController, option: IssueType) -> Void in - self?.dataSource.reloadCell(row: issueRow, section: section, displayText: option.displayString) - self?.contactForm.issue = option.displayString ?? IssueType.other.displayString - } - - issueRow.selection = { [weak self] in - let optionsVC = - OptionSelectionViewController( - options: IssueType.allCases, - optionChanged: optionChanged) - - self?.navigationController?.pushViewController(optionsVC, animated: true) - } - - section.rows.append(issueRow) - let sendButton = Row( text: Strings.VPN.contactFormSendButton, selection: { [weak self] in guard let self = self else { return } - if !MFMailComposeViewController.canSendMail() { - Logger.module.error("Can't send email on this device") - let alert = UIAlertController( - title: Strings.genericErrorTitle, - message: Strings.VPN.contactFormEmailNotConfiguredBody, - preferredStyle: .alert) - let okAction = UIAlertAction(title: Strings.OKString, style: .default) - alert.addAction(okAction) - self.present(alert, animated: true) - return - } - - let mail = MFMailComposeViewController().then { - $0.mailComposeDelegate = self - $0.setToRecipients([self.supportEmail]) - } - - mail.setSubject(Strings.VPN.contactFormTitle) - mail.setMessageBody(self.composeEmailBody(with: self.contactForm), isHTML: false) - self.present(mail, animated: true) + let optionChanged = { [weak self] (vc: OptionSelectionViewController, option: IssueType) -> Void in + self?.contactForm.issue = option.displayString + self?.createEmailOutline() + } + + let optionsVC = + OptionSelectionViewController( + options: IssueType.allCases, + optionChanged: optionChanged) + + self.navigationController?.pushViewController(optionsVC, animated: true) + }, cellClass: CenteredButtonCell.self) let footerText = @@ -268,6 +236,29 @@ class BraveVPNContactFormViewController: TableViewController { dataSource.sections = [section, buttonSection] } + + private func createEmailOutline() { + if !MFMailComposeViewController.canSendMail() { + Logger.module.error("Can't send email on this device") + let alert = UIAlertController( + title: Strings.genericErrorTitle, + message: Strings.VPN.contactFormEmailNotConfiguredBody, + preferredStyle: .alert) + let okAction = UIAlertAction(title: Strings.OKString, style: .default) + alert.addAction(okAction) + present(alert, animated: true) + return + } + + let mail = MFMailComposeViewController().then { + $0.mailComposeDelegate = self + $0.setToRecipients([self.supportEmail]) + } + + mail.setSubject(Strings.VPN.contactFormTitle) + mail.setMessageBody(self.composeEmailBody(with: self.contactForm), isHTML: false) + present(mail, animated: true) + } private var getNetworkType: String { let status = Reach().connectionStatus()