diff options
author | marinofaggiana <marino@marinofaggiana.com> | 2019-03-21 19:37:22 +0300 |
---|---|---|
committer | marinofaggiana <marino@marinofaggiana.com> | 2019-03-21 19:37:22 +0300 |
commit | 684d90b90120bad6ecb77c1582219061ceeba8a5 (patch) | |
tree | 1f971b28e1b7119468263d62e2db55e4ded91489 /Notification Service Extension | |
parent | dc514430e1e19ea960911da7055b838573627437 (diff) |
#817
Diffstat (limited to 'Notification Service Extension')
-rw-r--r-- | Notification Service Extension/NotificationService.swift | 90 | ||||
-rw-r--r-- | Notification Service Extension/NotificationServiceExtension-Bridging-Header.h | 31 |
2 files changed, 0 insertions, 121 deletions
diff --git a/Notification Service Extension/NotificationService.swift b/Notification Service Extension/NotificationService.swift deleted file mode 100644 index ad49dc789..000000000 --- a/Notification Service Extension/NotificationService.swift +++ /dev/null @@ -1,90 +0,0 @@ -// -// NotificationService.swift -// Notification Service Extension -// -// Created by Marino Faggiana on 27/07/18. -// Copyright © 2018 Marino Faggiana. All rights reserved. -// -// Author Marino Faggiana <marino.faggiana@nextcloud.com> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. -// - -import UserNotifications - -class NotificationService: UNNotificationServiceExtension { - - let privateKey = CCUtility.getPushNotificationPrivateKey() - var contentHandler: ((UNNotificationContent) -> Void)? - var bestAttemptContent: UNMutableNotificationContent? - - override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) { - - self.contentHandler = contentHandler - bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent) - - if let bestAttemptContent = bestAttemptContent { - - bestAttemptContent.title = "" - bestAttemptContent.body = "Nextcloud notification" - - let message = bestAttemptContent.userInfo["subject"] as! String - - guard let privateKey = CCUtility.getPushNotificationPrivateKey() else { - contentHandler(bestAttemptContent) - return - } - - guard let decryptedMessage = NCPushNotificationEncryption.sharedInstance().decryptPushNotification(message, withDevicePrivateKey: privateKey) else { - contentHandler(bestAttemptContent) - return - } - - guard let data = decryptedMessage.data(using: .utf8) else { - contentHandler(bestAttemptContent) - return - } - - do { - let json = try JSONSerialization.jsonObject(with: data) as! [String:AnyObject] - if let app = json["app"] as? String { - if app == "spreed" { - bestAttemptContent.title = "Nextcloud Talk" - } else { - bestAttemptContent.title = app.capitalized - } - } - if let subject = json["subject"] as? String { - bestAttemptContent.body = subject - } - } catch let error as NSError { - print("Failed : \(error.localizedDescription)") - } - - contentHandler(bestAttemptContent) - } - } - - override func serviceExtensionTimeWillExpire() { - - if let contentHandler = contentHandler, let bestAttemptContent = bestAttemptContent { - - bestAttemptContent.title = "" - bestAttemptContent.body = "Nextcloud notification" - - contentHandler(bestAttemptContent) - } - } - -} diff --git a/Notification Service Extension/NotificationServiceExtension-Bridging-Header.h b/Notification Service Extension/NotificationServiceExtension-Bridging-Header.h deleted file mode 100644 index fa881e42c..000000000 --- a/Notification Service Extension/NotificationServiceExtension-Bridging-Header.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// NotificationServiceExtension-Bridging-Header.h -// Nextcloud -// -// Created by Marino Faggiana on 27/07/18. -// Copyright © 2018 Marino Faggiana. All rights reserved. -// -// Author Marino Faggiana <marino.faggiana@nextcloud.com> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. -// - -#import "CCUtility.h" -#import "NCPushNotificationEncryption.h" - -#import "OCActivity.h" -#import "OCUserProfile.h" -#import "OCCapabilities.h" -#import "OCExternalSites.h" -#import "OCSharedDto.h" |