diff --git a/Brisk/AppDelegate.swift b/Brisk/AppDelegate.swift
index f96911b..63aad3f 100644
--- a/Brisk/AppDelegate.swift
+++ b/Brisk/AppDelegate.swift
@@ -54,6 +54,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate {
private func registerDefaults() {
let defaults: [String: Any] = [
Defaults.showDockIcon: false,
+ Defaults.copyOpenRadarLinkToClipboard: false
]
UserDefaults.standard.register(defaults: defaults)
diff --git a/Brisk/Constants.swift b/Brisk/Constants.swift
index eb86507..82fc52b 100644
--- a/Brisk/Constants.swift
+++ b/Brisk/Constants.swift
@@ -1,3 +1,4 @@
struct Defaults {
static let showDockIcon = "showDockIcon"
+ static let copyOpenRadarLinkToClipboard = "copyOpenRadarLinkToClipboard"
}
diff --git a/Brisk/Controllers/RadarViewController.swift b/Brisk/Controllers/RadarViewController.swift
index 146fa6f..d7010b3 100644
--- a/Brisk/Controllers/RadarViewController.swift
+++ b/Brisk/Controllers/RadarViewController.swift
@@ -150,7 +150,7 @@ final class RadarViewController: ViewController {
guard self?.postToOpenRadarButton.state == .on,
let (_, token) = Keychain.get(.openRadar) else
{
- self?.submitRadarCompletion(success: true)
+ self?.submitRadarCompletion(success: true, code: radarID)
return
}
@@ -163,7 +163,7 @@ final class RadarViewController: ViewController {
}, closure: { [weak self] result in
switch result {
case .success:
- self?.submitRadarCompletion(success: true)
+ self?.submitRadarCompletion(success: true, code: radarID)
case .failure(let error):
self?.showError(message: error.message)
self?.submitRadarCompletion(success: false)
@@ -214,15 +214,28 @@ final class RadarViewController: ViewController {
}
}
- private func submitRadarCompletion(success: Bool) {
+ private func submitRadarCompletion(success: Bool, code: Int = -1) {
self.progressIndicator.stopAnimation(self)
self.submitButton.isEnabled = true
- if success {
+ if success && code != -1 {
if self.document?.fileURL != nil {
self.document?.save(self)
}
+ let notification = NSUserNotification()
+ notification.title = "Radar submitted"
+
+ if UserDefaults.standard.bool(forKey: Defaults.copyOpenRadarLinkToClipboard) {
+ NSPasteboard.general.clearContents()
+ NSPasteboard.general.setString("http://www.openradar.me/\(code)", forType: .string)
+ notification.informativeText = "The OpenRadar link has been copied to your clipboard."
+ } else {
+ notification.informativeText = "Your report identifier is: rdar://\(code)"
+ }
+ NSUserNotificationCenter.default.delegate = self
+ NSUserNotificationCenter.default.deliver(notification)
+
self.document?.close()
}
}
@@ -335,3 +348,9 @@ extension RadarViewController: NSWindowDelegate {
self.updateOpenRadarButton()
}
}
+
+extension RadarViewController: NSUserNotificationCenterDelegate {
+ func userNotificationCenter(_ center: NSUserNotificationCenter, shouldPresent notification: NSUserNotification) -> Bool {
+ return true
+ }
+}
diff --git a/Brisk/Resources/Base.lproj/Main.storyboard b/Brisk/Resources/Base.lproj/Main.storyboard
index 6ca91ee..9be6064 100644
--- a/Brisk/Resources/Base.lproj/Main.storyboard
+++ b/Brisk/Resources/Base.lproj/Main.storyboard
@@ -1024,21 +1024,43 @@ DQ
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
+
-
+
+
-
+
-
+
@@ -1148,14 +1162,14 @@ DQ
-
+
-
+
-
+
@@ -1170,21 +1184,21 @@ DQ
-
+
-
+
-
+
-
+
@@ -1199,21 +1213,21 @@ DQ
-
+
-
+
-
+
-
+
@@ -1228,21 +1242,21 @@ DQ
-
+
-
+
-
+
-
+
@@ -1257,21 +1271,21 @@ DQ
-
+
-
+
-
+
-
+
@@ -1286,7 +1300,7 @@ DQ
-
+