Attach provider info to connectivity issue
This commit is contained in:
parent
7b8a40cddc
commit
08ff3d01dc
|
@ -58,28 +58,39 @@ class IssueReporter: NSObject {
|
||||||
let alert = UIAlertController.asAlert(L10n.Core.IssueReporter.title, L10n.Core.IssueReporter.message)
|
let alert = UIAlertController.asAlert(L10n.Core.IssueReporter.title, L10n.Core.IssueReporter.message)
|
||||||
alert.addPreferredAction(L10n.Core.IssueReporter.Buttons.accept) {
|
alert.addPreferredAction(L10n.Core.IssueReporter.Buttons.accept) {
|
||||||
VPN.shared.requestDebugLog(fallback: AppConstants.Log.debugSnapshot) {
|
VPN.shared.requestDebugLog(fallback: AppConstants.Log.debugSnapshot) {
|
||||||
self.composeEmail(withDebugLog: $0, configurationURL: issue.configurationURL, description: issue.description)
|
self.composeEmail(withDebugLog: $0, issue: issue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
alert.addCancelAction(L10n.Core.Global.cancel)
|
alert.addCancelAction(L10n.Core.Global.cancel)
|
||||||
viewController.present(alert, animated: true, completion: nil)
|
viewController.present(alert, animated: true, completion: nil)
|
||||||
} else {
|
} else {
|
||||||
composeEmail(withDebugLog: nil, configurationURL: issue.configurationURL, description: issue.description)
|
composeEmail(withDebugLog: nil, issue: issue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func composeEmail(withDebugLog debugLog: String?, configurationURL: URL?, description: String?) {
|
private func composeEmail(withDebugLog debugLog: String?, issue: Issue) {
|
||||||
let metadata = DebugLog(raw: "--").decoratedString()
|
|
||||||
|
|
||||||
let vc = MFMailComposeViewController()
|
let vc = MFMailComposeViewController()
|
||||||
vc.setToRecipients([AppConstants.IssueReporter.Email.recipient])
|
vc.setToRecipients([AppConstants.IssueReporter.Email.recipient])
|
||||||
vc.setSubject(AppConstants.IssueReporter.Email.subject)
|
vc.setSubject(AppConstants.IssueReporter.Email.subject)
|
||||||
vc.setMessageBody(AppConstants.IssueReporter.Email.body(description ?? AppConstants.IssueReporter.Email.template, metadata), isHTML: false)
|
|
||||||
|
let bodyContent = AppConstants.IssueReporter.Email.template
|
||||||
|
var bodyMetadata = "--\n\n"
|
||||||
|
bodyMetadata += DebugLog(raw: "").decoratedString()
|
||||||
|
if let infrastructure = issue.infrastructure {
|
||||||
|
bodyMetadata += "Provider: \(infrastructure.name.rawValue)\n"
|
||||||
|
if let lastUpdated = InfrastructureFactory.shared.modificationDate(for: infrastructure.name) {
|
||||||
|
bodyMetadata += "Last updated: \(lastUpdated)\n"
|
||||||
|
}
|
||||||
|
bodyMetadata += "\n"
|
||||||
|
}
|
||||||
|
bodyMetadata += "--"
|
||||||
|
vc.setMessageBody(AppConstants.IssueReporter.Email.body(bodyContent, bodyMetadata), isHTML: false)
|
||||||
|
|
||||||
if let raw = debugLog {
|
if let raw = debugLog {
|
||||||
let attachment = DebugLog(raw: raw).decoratedData()
|
let attachment = DebugLog(raw: raw).decoratedData()
|
||||||
vc.addAttachmentData(attachment, mimeType: AppConstants.IssueReporter.MIME.debugLog, fileName: AppConstants.IssueReporter.Filenames.debugLog)
|
vc.addAttachmentData(attachment, mimeType: AppConstants.IssueReporter.MIME.debugLog, fileName: AppConstants.IssueReporter.Filenames.debugLog)
|
||||||
}
|
}
|
||||||
if let url = configurationURL {
|
if let url = issue.configurationURL {
|
||||||
do {
|
do {
|
||||||
let parsedFile = try OpenVPN.ConfigurationParser.parsed(fromURL: url, returnsStripped: true)
|
let parsedFile = try OpenVPN.ConfigurationParser.parsed(fromURL: url, returnsStripped: true)
|
||||||
if let attachment = parsedFile.strippedLines?.joined(separator: "\n").data(using: .utf8) {
|
if let attachment = parsedFile.strippedLines?.joined(separator: "\n").data(using: .utf8) {
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 69d335042a40f55d762bb75ea22fc3a245ef93cd
|
Subproject commit 7476e0751d1a64efca0180a1e31f0e24f04fce84
|
Loading…
Reference in New Issue