From fa42b4a45b9bca03a6ff5cc3ed4b7cf33a8f2c00 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Fri, 14 Jul 2017 09:27:52 -0400 Subject: [PATCH] Respect disappearing message timer from lockscreen // FREEBIE --- Signal/src/network/PushManager.m | 13 +++++++------ Signal/src/util/ThreadUtil.h | 6 ++++++ Signal/src/util/ThreadUtil.m | 27 ++++++++++++++++++++------- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/Signal/src/network/PushManager.m b/Signal/src/network/PushManager.m index 24508a3dd..47e08e7d0 100644 --- a/Signal/src/network/PushManager.m +++ b/Signal/src/network/PushManager.m @@ -8,6 +8,7 @@ #import "OWSContactsManager.h" #import "PropertyListPreferences.h" #import "Signal-Swift.h" +#import "ThreadUtil.h" #import #import #import @@ -147,16 +148,16 @@ NSString *const Signal_Message_MarkAsRead_Identifier = @"Signal_Message_MarkAsRe if (threadId) { TSThread *thread = [TSThread fetchObjectWithUniqueID:threadId]; - TSOutgoingMessage *message = - [[TSOutgoingMessage alloc] initWithTimestamp:[NSDate ows_millisecondTimeStamp] - inThread:thread - messageBody:responseInfo[UIUserNotificationActionResponseTypedTextKey]]; - [self.messageSender sendMessage:message + NSString *replyText = responseInfo[UIUserNotificationActionResponseTypedTextKey]; + + [ThreadUtil sendMessageWithText:replyText + inThread:thread + messageSender:self.messageSender success:^{ // TODO do we really want to mark them all as read? [self markAllInThreadAsRead:notification.userInfo completionHandler:completionHandler]; } - failure:^(NSError *error) { + failure:^(NSError *_Nonnull error) { // TODO Surface the specific error in the notification? DDLogError(@"Message send failed with error: %@", error); diff --git a/Signal/src/util/ThreadUtil.h b/Signal/src/util/ThreadUtil.h index 41c84ab78..dafdad510 100644 --- a/Signal/src/util/ThreadUtil.h +++ b/Signal/src/util/ThreadUtil.h @@ -48,6 +48,12 @@ NS_ASSUME_NONNULL_BEGIN @interface ThreadUtil : NSObject ++ (TSOutgoingMessage *)sendMessageWithText:(NSString *)text + inThread:(TSThread *)thread + messageSender:(OWSMessageSender *)messageSender + success:(void (^)())successHandler + failure:(void (^)(NSError *error))failureHandler; + + (TSOutgoingMessage *)sendMessageWithText:(NSString *)text inThread:(TSThread *)thread messageSender:(OWSMessageSender *)messageSender; diff --git a/Signal/src/util/ThreadUtil.m b/Signal/src/util/ThreadUtil.m index 6ae76e02a..d5460e387 100644 --- a/Signal/src/util/ThreadUtil.m +++ b/Signal/src/util/ThreadUtil.m @@ -48,6 +48,24 @@ NS_ASSUME_NONNULL_BEGIN + (TSOutgoingMessage *)sendMessageWithText:(NSString *)text inThread:(TSThread *)thread messageSender:(OWSMessageSender *)messageSender +{ + return [self sendMessageWithText:text + inThread:thread + messageSender:messageSender + success:^{ + DDLogInfo(@"%@ Successfully sent message.", self.tag); + } + failure:^(NSError *error) { + DDLogWarn(@"%@ Failed to deliver message with error: %@", self.tag, error); + }]; +} + + ++ (TSOutgoingMessage *)sendMessageWithText:(NSString *)text + inThread:(TSThread *)thread + messageSender:(OWSMessageSender *)messageSender + success:(void (^)())successHandler + failure:(void (^)(NSError *error))failureHandler { OWSAssert([NSThread isMainThread]); OWSAssert(text.length > 0); @@ -62,13 +80,8 @@ NS_ASSUME_NONNULL_BEGIN messageBody:text attachmentIds:[NSMutableArray new] expiresInSeconds:(configuration.isEnabled ? configuration.durationSeconds : 0)]; - [messageSender sendMessage:message - success:^{ - DDLogInfo(@"%@ Successfully sent message.", self.tag); - } - failure:^(NSError *error) { - DDLogWarn(@"%@ Failed to deliver message with error: %@", self.tag, error); - }]; + + [messageSender sendMessage:message success:successHandler failure:failureHandler]; return message; }