|
@@ -644,6 +644,33 @@ private extension ViewController {
|
|
|
openInDefaultBrowser(url: url)
|
|
openInDefaultBrowser(url: url)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private func shareAppURL() -> URL? {
|
|
|
|
|
+ if let configured = Bundle.main.object(forInfoDictionaryKey: "AppShareURL") as? String {
|
|
|
|
|
+ let trimmed = configured.trimmingCharacters(in: .whitespacesAndNewlines)
|
|
|
|
|
+ if trimmed.isEmpty == false, let url = URL(string: trimmed) {
|
|
|
|
|
+ return url
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return nil
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private func shareAppFromSettingsMenu() {
|
|
|
|
|
+ let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String
|
|
|
|
|
+ ?? Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String
|
|
|
|
|
+ ?? "Meetings App"
|
|
|
|
|
+ let message = "Check out \(appName) for managing and joining meetings."
|
|
|
|
|
+ let appURL = shareAppURL()
|
|
|
|
|
+ let shareItems: [Any] = appURL.map { [message, $0] } ?? [message]
|
|
|
|
|
+
|
|
|
|
|
+ let picker = NSSharingServicePicker(items: shareItems)
|
|
|
|
|
+ let anchorView = sidebarRowViews[.settings] ?? view
|
|
|
|
|
+ picker.show(relativeTo: anchorView.bounds, of: anchorView, preferredEdge: .maxX)
|
|
|
|
|
+
|
|
|
|
|
+ let clipboardText = ([message, appURL?.absoluteString].compactMap { $0 }).joined(separator: "\n")
|
|
|
|
|
+ NSPasteboard.general.clearContents()
|
|
|
|
|
+ NSPasteboard.general.setString(clipboardText, forType: .string)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private func showSidebarPage(_ page: SidebarPage) {
|
|
private func showSidebarPage(_ page: SidebarPage) {
|
|
|
selectedSidebarPage = page
|
|
selectedSidebarPage = page
|
|
|
updateSidebarAppearance()
|
|
updateSidebarAppearance()
|
|
@@ -744,10 +771,9 @@ private extension ViewController {
|
|
|
openInAppBrowser(with: url, policy: inAppBrowserDefaultPolicy)
|
|
openInAppBrowser(with: url, policy: inAppBrowserDefaultPolicy)
|
|
|
}
|
|
}
|
|
|
case .shareApp:
|
|
case .shareApp:
|
|
|
- let urlString = "https://example.com"
|
|
|
|
|
- NSPasteboard.general.clearContents()
|
|
|
|
|
- NSPasteboard.general.setString(urlString, forType: .string)
|
|
|
|
|
- showSimpleAlert(title: "Share App", message: "Link copied to clipboard:\n\(urlString)")
|
|
|
|
|
|
|
+ settingsPopover?.performClose(nil)
|
|
|
|
|
+ settingsPopover = nil
|
|
|
|
|
+ shareAppFromSettingsMenu()
|
|
|
case .upgrade:
|
|
case .upgrade:
|
|
|
settingsPopover?.performClose(nil)
|
|
settingsPopover?.performClose(nil)
|
|
|
settingsPopover = nil
|
|
settingsPopover = nil
|