From 530f6db5e642632d34bb8bd008333ace84ecc6e2 Mon Sep 17 00:00:00 2001 From: Ryan ZHAO Date: Thu, 6 Aug 2020 11:46:16 +1000 Subject: [PATCH] fix PN attachments --- .../NotificationServiceExtension.swift | 21 ++++++++++++------- .../Attachments/OWSAttachmentDownloads.m | 2 -- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/LokiPushNotificationService/NotificationServiceExtension.swift b/LokiPushNotificationService/NotificationServiceExtension.swift index 4692cba63..3222febed 100644 --- a/LokiPushNotificationService/NotificationServiceExtension.swift +++ b/LokiPushNotificationService/NotificationServiceExtension.swift @@ -62,13 +62,15 @@ final class NotificationServiceExtension : UNNotificationServiceExtension { var thread: TSThread var newNotificationBody = "" let masterPublicKey = OWSPrimaryStorage.shared().getMasterHexEncodedPublicKey(for: result.source, in: transaction) ?? result.source - var displayName = masterPublicKey + var displayName = OWSUserProfile.fetch(uniqueId: masterPublicKey, transaction: transaction)?.profileName ?? SSKEnvironment.shared.contactsManager.displayName(forPhoneIdentifier: masterPublicKey) if let groupID = contentProto?.dataMessage?.group?.id { thread = TSGroupThread.getOrCreateThread(withGroupId: groupID, groupType: .closedGroup, transaction: transaction) - displayName = thread.name() - if displayName.count < 1 { - displayName = MessageStrings.newGroupDefaultTitle + var groupName = thread.name() + if groupName.count < 1 { + groupName = MessageStrings.newGroupDefaultTitle } + let senderName = OWSUserProfile.fetch(uniqueId: masterPublicKey, transaction: transaction)?.profileName ?? SSKEnvironment.shared.contactsManager.displayName(forPhoneIdentifier: masterPublicKey) + displayName = String(format: NotificationStrings.incomingGroupMessageTitleFormat, senderName, groupName) let group: SSKProtoGroupContext = contentProto!.dataMessage!.group! let oldGroupModel = (thread as! TSGroupThread).groupModel let removedMembers = NSMutableSet(array: oldGroupModel.groupMemberIds) @@ -93,16 +95,21 @@ final class NotificationServiceExtension : UNNotificationServiceExtension { } } else { thread = TSContactThread.getOrCreateThread(withContactId: result.source, transaction: transaction) - displayName = contentProto?.dataMessage?.profile?.displayName ?? displayName } let userInfo: [String:Any] = [ NotificationServiceExtension.threadIdKey : thread.uniqueId!, NotificationServiceExtension.isFromRemoteKey : true ] notificationContent.title = displayName notificationContent.userInfo = userInfo notificationContent.badge = 1 + if let attachment = contentProto?.dataMessage?.attachments.last { + newNotificationBody = TSAttachment.emoji(forMimeType: attachment.contentType!) + "Attachment" + if let rawMessageBody = contentProto?.dataMessage?.body, rawMessageBody.count > 0 { + newNotificationBody += ": \(rawMessageBody)" + } + } if newNotificationBody.count < 1 { - let rawMessageBody = contentProto?.dataMessage?.body ?? "You've got a new message" - newNotificationBody = handleMentionIfNecessary(rawMessageBody: rawMessageBody, threadID: thread.uniqueId!, transaction: transaction) + newNotificationBody = contentProto?.dataMessage?.body ?? "You've got a new message" } + newNotificationBody = handleMentionIfNecessary(rawMessageBody: newNotificationBody, threadID: thread.uniqueId!, transaction: transaction) notificationContent.body = newNotificationBody if notificationContent.body.count < 1 { self.completeWithFailure(content: notificationContent) diff --git a/SignalServiceKit/src/Messages/Attachments/OWSAttachmentDownloads.m b/SignalServiceKit/src/Messages/Attachments/OWSAttachmentDownloads.m index f02f251d9..60f50cbc4 100644 --- a/SignalServiceKit/src/Messages/Attachments/OWSAttachmentDownloads.m +++ b/SignalServiceKit/src/Messages/Attachments/OWSAttachmentDownloads.m @@ -264,8 +264,6 @@ typedef void (^AttachmentDownloadFailure)(NSError *error); - (void)startDownloadIfPossible { - if (CurrentAppContext().wasWokenUpByPushNotification) { return; } - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ OWSAttachmentDownloadJob *_Nullable job;