From 4412ec8f15cb53a778cbf832a35417ddc8f3734a Mon Sep 17 00:00:00 2001 From: Mikunj Date: Thu, 23 May 2019 15:01:01 +1000 Subject: [PATCH] Made LKAddressMessage a subclass of LKEphemeralMessage. This is because we can't send a body with a nil message :( --- SignalServiceKit/src/Loki/API/LokiAPI.swift | 1 + .../src/Loki/Messages/LKAddressMessage.h | 7 ++----- .../src/Loki/Messages/LKAddressMessage.m | 16 ++++------------ .../src/Loki/Messages/LKEphemeralMessage.h | 2 ++ .../src/Loki/Messages/LKEphemeralMessage.m | 8 ++++++-- 5 files changed, 15 insertions(+), 19 deletions(-) diff --git a/SignalServiceKit/src/Loki/API/LokiAPI.swift b/SignalServiceKit/src/Loki/API/LokiAPI.swift index a2f6adbae..50d19e8f7 100644 --- a/SignalServiceKit/src/Loki/API/LokiAPI.swift +++ b/SignalServiceKit/src/Loki/API/LokiAPI.swift @@ -82,6 +82,7 @@ import PromiseKit var p2pPromise: Promise>> = Promise(error: Error.internalError) // TODO: probably only send to p2p if user is online or we are pinging them // p2pDetails && (isPing || peerIsOnline) + if let p2pDetails = contactP2PDetails[destination] { p2pPromise = sendMessage(message, targets: [p2pDetails]) } diff --git a/SignalServiceKit/src/Loki/Messages/LKAddressMessage.h b/SignalServiceKit/src/Loki/Messages/LKAddressMessage.h index e8128e436..9d928ce1c 100644 --- a/SignalServiceKit/src/Loki/Messages/LKAddressMessage.h +++ b/SignalServiceKit/src/Loki/Messages/LKAddressMessage.h @@ -1,13 +1,10 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// -#import +#import "LKEphemeralMessage.h" NS_ASSUME_NONNULL_BEGIN NS_SWIFT_NAME(LokiAddressMessage) -@interface LKAddressMessage : TSOutgoingMessage +@interface LKAddressMessage : LKEphemeralMessage - (instancetype)initInThread:(nullable TSThread *)thread address:(NSString *)address diff --git a/SignalServiceKit/src/Loki/Messages/LKAddressMessage.m b/SignalServiceKit/src/Loki/Messages/LKAddressMessage.m index c28924c90..0e8c80842 100644 --- a/SignalServiceKit/src/Loki/Messages/LKAddressMessage.m +++ b/SignalServiceKit/src/Loki/Messages/LKAddressMessage.m @@ -12,12 +12,11 @@ @implementation LKAddressMessage -- (instancetype)initAddressMessageInThread:(nullable TSThread *)thread - address:(NSString *)address - port:(uint)port +- (instancetype)initInThread:(nullable TSThread *)thread + address:(NSString *)address + port:(uint)port { - self = [super initOutgoingMessageWithTimestamp:NSDate.ows_millisecondTimeStamp inThread:thread messageBody:nil attachmentIds:[NSMutableArray new] - expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO groupMetaMessage:TSGroupMetaMessageUnspecified quotedMessage:nil contactShare:nil linkPreview:nil]; + self = [super initInThread:thread]; if (!self) { return self; } @@ -47,13 +46,6 @@ return contentBuilder; } -// We don't need to send any data message in this address message -- (nullable SSKProtoDataMessage *)buildDataMessage:(NSString *_Nullable)recipientId { - return nil; -} - -- (BOOL)shouldBeSaved { return false; } - - (uint)ttl { // Address messages should only last 1 minute return 1 * kMinuteInterval; diff --git a/SignalServiceKit/src/Loki/Messages/LKEphemeralMessage.h b/SignalServiceKit/src/Loki/Messages/LKEphemeralMessage.h index 16e318f75..92e67db2d 100644 --- a/SignalServiceKit/src/Loki/Messages/LKEphemeralMessage.h +++ b/SignalServiceKit/src/Loki/Messages/LKEphemeralMessage.h @@ -8,6 +8,8 @@ NS_SWIFT_NAME(EphemeralMessage) /// Used to establish sessions. + (LKEphemeralMessage *)createEmptyOutgoingMessageInThread:(TSThread *)thread; +- (instancetype)initInThread:(nullable TSThread *)thread; + @end NS_ASSUME_NONNULL_END diff --git a/SignalServiceKit/src/Loki/Messages/LKEphemeralMessage.m b/SignalServiceKit/src/Loki/Messages/LKEphemeralMessage.m index 658e9b795..76ef20119 100644 --- a/SignalServiceKit/src/Loki/Messages/LKEphemeralMessage.m +++ b/SignalServiceKit/src/Loki/Messages/LKEphemeralMessage.m @@ -4,8 +4,12 @@ @implementation LKEphemeralMessage + (LKEphemeralMessage *)createEmptyOutgoingMessageInThread:(TSThread *)thread { - return [[LKEphemeralMessage alloc] initOutgoingMessageWithTimestamp:NSDate.ows_millisecondTimeStamp inThread:thread messageBody:@"" attachmentIds:[NSMutableArray new] - expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO groupMetaMessage:TSGroupMetaMessageUnspecified quotedMessage:nil contactShare:nil linkPreview:nil]; + return [[LKEphemeralMessage alloc] initInThread:thread]; +} + +- (instancetype)initInThread:(nullable TSThread *)thread { + return [self initOutgoingMessageWithTimestamp:NSDate.ows_millisecondTimeStamp inThread:thread messageBody:@"" attachmentIds:[NSMutableArray new] + expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO groupMetaMessage:TSGroupMetaMessageUnspecified quotedMessage:nil contactShare:nil linkPreview:nil]; } - (BOOL)shouldBeSaved { return NO; }