From 135a1655fd102315e0318257be2a8e4af1a2b686 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Mon, 6 Aug 2018 12:22:55 -0400 Subject: [PATCH] Migrate call proto wrappers. --- Signal/src/Signal-Bridging-Header.h | 1 - .../DebugUI/DebugUICalling.swift | 10 ++++- Signal/src/call/CallService.swift | 28 ++++++++----- .../src/Messages/OWSCallHangupMessage.h | 24 ----------- .../src/Messages/OWSCallHangupMessage.m | 42 ------------------- .../src/Messages/OWSOutgoingCallMessage.h | 6 +-- .../src/Messages/OWSOutgoingCallMessage.m | 9 +--- 7 files changed, 32 insertions(+), 88 deletions(-) delete mode 100644 SignalServiceKit/src/Messages/OWSCallHangupMessage.h delete mode 100644 SignalServiceKit/src/Messages/OWSCallHangupMessage.m diff --git a/Signal/src/Signal-Bridging-Header.h b/Signal/src/Signal-Bridging-Header.h index f6bb3b18f..4594d44da 100644 --- a/Signal/src/Signal-Bridging-Header.h +++ b/Signal/src/Signal-Bridging-Header.h @@ -83,7 +83,6 @@ #import #import #import -#import #import #import #import diff --git a/Signal/src/ViewControllers/DebugUI/DebugUICalling.swift b/Signal/src/ViewControllers/DebugUI/DebugUICalling.swift index 33d3bf218..2e003e632 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUICalling.swift +++ b/Signal/src/ViewControllers/DebugUI/DebugUICalling.swift @@ -31,7 +31,15 @@ class DebugUICalling: DebugUIPage { guard let strongSelf = self else { return } let kFakeCallId = UInt64(12345) - let hangupMessage = OWSCallHangupMessage(callId: kFakeCallId) + var hangupMessage: SSKProtoCallMessageHangup + do { + let hangupBuilder = SSKProtoCallMessageHangup.SSKProtoCallMessageHangupBuilder() + hangupBuilder.setId(kFakeCallId) + hangupMessage = try hangupBuilder.build() + } catch { + Logger.error("\(strongSelf.logTag) could not build proto") + return + } let callMessage = OWSOutgoingCallMessage(thread: thread, hangupMessage: hangupMessage) strongSelf.messageSender.sendPromise(message: callMessage).then { diff --git a/Signal/src/call/CallService.swift b/Signal/src/call/CallService.swift index 335de2a36..a7ee66230 100644 --- a/Signal/src/call/CallService.swift +++ b/Signal/src/call/CallService.swift @@ -1201,17 +1201,25 @@ private class SignalCallData: NSObject { } // If the call hasn't started yet, we don't have a data channel to communicate the hang up. Use Signal Service Message. - let hangupMessage = OWSCallHangupMessage(callId: call.signalingId) - let callMessage = OWSOutgoingCallMessage(thread: call.thread, hangupMessage: hangupMessage) - let sendPromise = self.messageSender.sendPromise(message: callMessage).then { - Logger.debug("\(self.logTag) successfully sent hangup call message to \(call.thread.contactIdentifier())") - }.catch { error in - OWSProdInfo(OWSAnalyticsEvents.callServiceErrorHandleLocalHungupCall(), file: #file, function: #function, line: #line) - Logger.error("\(self.logTag) failed to send hangup call message to \(call.thread.contactIdentifier()) with error: \(error)") - } - sendPromise.retainUntilComplete() - terminateCall() + do { + let hangupBuilder = SSKProtoCallMessageHangup.SSKProtoCallMessageHangupBuilder() + hangupBuilder.setId(call.signalingId) + let hangupProto = try hangupBuilder.build() + + let callMessage = OWSOutgoingCallMessage(thread: call.thread, hangupMessage: hangupProto) + let sendPromise = self.messageSender.sendPromise(message: callMessage).then { + Logger.debug("\(self.logTag) successfully sent hangup call message to \(call.thread.contactIdentifier())") + }.catch { error in + OWSProdInfo(OWSAnalyticsEvents.callServiceErrorHandleLocalHungupCall(), file: #file, function: #function, line: #line) + Logger.error("\(self.logTag) failed to send hangup call message to \(call.thread.contactIdentifier()) with error: \(error)") + } + sendPromise.retainUntilComplete() + + terminateCall() + } catch { + handleFailedCall(failedCall: call, error: CallError.assertionError(description: "\(self.logTag) couldn't build proto in \(#function)")) + } } /** diff --git a/SignalServiceKit/src/Messages/OWSCallHangupMessage.h b/SignalServiceKit/src/Messages/OWSCallHangupMessage.h deleted file mode 100644 index 994fb2ef5..000000000 --- a/SignalServiceKit/src/Messages/OWSCallHangupMessage.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - -#import "OWSOutgoingCallMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -@class SSKProtoCallMessageHangup; - -/** - * Sent by either party in a call to indicate the user intentionally ended the call. - */ -@interface OWSCallHangupMessage : OWSOutgoingCallMessage - -- (instancetype)initWithCallId:(UInt64)callId; - -@property (nonatomic, readonly) UInt64 callId; - -- (nullable SSKProtoCallMessageHangup *)asProtobuf; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SignalServiceKit/src/Messages/OWSCallHangupMessage.m b/SignalServiceKit/src/Messages/OWSCallHangupMessage.m deleted file mode 100644 index f2955499f..000000000 --- a/SignalServiceKit/src/Messages/OWSCallHangupMessage.m +++ /dev/null @@ -1,42 +0,0 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - -#import "OWSCallHangupMessage.h" -#import - -NS_ASSUME_NONNULL_BEGIN - -@implementation OWSCallHangupMessage - -- (instancetype)initWithCallId:(UInt64)callId -{ - self = [super init]; - if (!self) { - return self; - } - - _callId = callId; - - return self; -} - -- (nullable SSKProtoCallMessageHangup *)asProtobuf -{ - SSKProtoCallMessageHangupBuilder *builder = [SSKProtoCallMessageHangupBuilder new]; - - builder.id = self.callId; - - NSError *error; - SSKProtoCallMessageHangup *_Nullable result = [builder buildAndReturnError:&error]; - if (error || !result) { - OWSFail(@"%@ could not build protobuf: %@", self.logTag, error); - return nil; - } - return result; -} - - -@end - -NS_ASSUME_NONNULL_END diff --git a/SignalServiceKit/src/Messages/OWSOutgoingCallMessage.h b/SignalServiceKit/src/Messages/OWSOutgoingCallMessage.h index b0baca371..ff98a87e9 100644 --- a/SignalServiceKit/src/Messages/OWSOutgoingCallMessage.h +++ b/SignalServiceKit/src/Messages/OWSOutgoingCallMessage.h @@ -7,8 +7,8 @@ NS_ASSUME_NONNULL_BEGIN @class OWSCallBusyMessage; -@class OWSCallHangupMessage; @class SSKProtoCallMessageAnswer; +@class SSKProtoCallMessageHangup; @class SSKProtoCallMessageIceUpdate; @class SSKProtoCallMessageOffer; @class TSThread; @@ -34,13 +34,13 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithThread:(TSThread *)thread iceUpdateMessage:(SSKProtoCallMessageIceUpdate *)iceUpdateMessage; - (instancetype)initWithThread:(TSThread *)thread iceUpdateMessages:(NSArray *)iceUpdateMessage; -- (instancetype)initWithThread:(TSThread *)thread hangupMessage:(OWSCallHangupMessage *)hangupMessage; +- (instancetype)initWithThread:(TSThread *)thread hangupMessage:(SSKProtoCallMessageHangup *)hangupMessage; - (instancetype)initWithThread:(TSThread *)thread busyMessage:(OWSCallBusyMessage *)busyMessage; @property (nullable, nonatomic, readonly) SSKProtoCallMessageOffer *offerMessage; @property (nullable, nonatomic, readonly) SSKProtoCallMessageAnswer *answerMessage; @property (nullable, nonatomic, readonly) NSArray *iceUpdateMessages; -@property (nullable, nonatomic, readonly) OWSCallHangupMessage *hangupMessage; +@property (nullable, nonatomic, readonly) SSKProtoCallMessageHangup *hangupMessage; @property (nullable, nonatomic, readonly) OWSCallBusyMessage *busyMessage; @end diff --git a/SignalServiceKit/src/Messages/OWSOutgoingCallMessage.m b/SignalServiceKit/src/Messages/OWSOutgoingCallMessage.m index 57296f53b..dc6165c0e 100644 --- a/SignalServiceKit/src/Messages/OWSOutgoingCallMessage.m +++ b/SignalServiceKit/src/Messages/OWSOutgoingCallMessage.m @@ -5,7 +5,6 @@ #import "OWSOutgoingCallMessage.h" #import "NSDate+OWS.h" #import "OWSCallBusyMessage.h" -#import "OWSCallHangupMessage.h" #import "ProtoUtils.h" #import "SignalRecipient.h" #import "TSContactThread.h" @@ -85,7 +84,7 @@ NS_ASSUME_NONNULL_BEGIN return self; } -- (instancetype)initWithThread:(TSThread *)thread hangupMessage:(OWSCallHangupMessage *)hangupMessage +- (instancetype)initWithThread:(TSThread *)thread hangupMessage:(SSKProtoCallMessageHangup *)hangupMessage { self = [self initWithThread:thread]; if (!self) { @@ -156,11 +155,7 @@ NS_ASSUME_NONNULL_BEGIN } if (self.hangupMessage) { - SSKProtoCallMessageHangup *_Nullable proto = [self.hangupMessage asProtobuf]; - if (!proto) { - return nil; - } - [builder setHangup:proto]; + [builder setHangup:self.hangupMessage]; } if (self.busyMessage) {