Add convenience initializers to proto wrappers.
This commit is contained in:
parent
908b50faaa
commit
e5eda8b45d
|
@ -187,7 +187,7 @@ EXTERNAL SOURCES:
|
|||
|
||||
CHECKOUT OPTIONS:
|
||||
AxolotlKit:
|
||||
:commit: 1fbdd114afe5ca981324892f22242d3a7a47794d
|
||||
:commit: 0c9dc8cc0f02fd616fa8e5a4f4184e452de93f1e
|
||||
:git: https://github.com/signalapp/SignalProtocolKit.git
|
||||
Curve25519Kit:
|
||||
:commit: ced146699622ebd3d282bbfce3d492db4456e9aa
|
||||
|
|
2
Pods
2
Pods
|
@ -1 +1 @@
|
|||
Subproject commit 73bf1779e0298cbc28c0b93d908bae0aa1f44bbc
|
||||
Subproject commit d16f91410fa1d9859a910b6f2b6e2369fb6d0377
|
|
@ -302,7 +302,6 @@ import Foundation
|
|||
writer.extend(('''
|
||||
public enum %s: Error {
|
||||
case invalidProtobuf(description: String)
|
||||
case unsafeProtobuf(description: String)
|
||||
}
|
||||
''' % writer.invalid_protobuf_error_name).strip())
|
||||
writer.newline()
|
||||
|
@ -649,6 +648,54 @@ public func serializedData() throws -> Data {
|
|||
writer.add('@objc public override init() {}')
|
||||
writer.newline()
|
||||
|
||||
# Required-Field Initializer
|
||||
required_fields = [field for field in self.fields() if field.is_required]
|
||||
if len(required_fields) > 0:
|
||||
required_init_params = []
|
||||
for field in required_fields:
|
||||
if field.rules == 'repeated':
|
||||
param_type = '[' + self.base_swift_type_for_field(field) + ']'
|
||||
else:
|
||||
param_type = self.base_swift_type_for_field(field)
|
||||
required_init_params.append('%s: %s' % ( field.name_swift, param_type) )
|
||||
writer.add('// Initializer for required fields')
|
||||
writer.add('@objc public init(%s) {' % ', '.join(required_init_params))
|
||||
writer.push_indent()
|
||||
writer.add('super.init()')
|
||||
writer.newline()
|
||||
for field in required_fields:
|
||||
accessor_name = field.name_swift
|
||||
accessor_name = 'set' + accessor_name[0].upper() + accessor_name[1:]
|
||||
writer.add('%s(%s)' % ( accessor_name, field.name_swift, ) )
|
||||
writer.pop_indent()
|
||||
writer.add('}')
|
||||
writer.newline()
|
||||
|
||||
# # All-Field Initializer
|
||||
# if len(required_fields) < len(self.fields()):
|
||||
# init_params = []
|
||||
# for field in self.fields():
|
||||
# if field.is_required:
|
||||
# if field.rules == 'repeated':
|
||||
# param_type = '[' + self.base_swift_type_for_field(field) + ']'
|
||||
# else:
|
||||
# param_type = self.base_swift_type_for_field(field)
|
||||
# else:
|
||||
# param_type = field.type_swift
|
||||
# init_params.append('%s: %s' % ( field.name_swift, param_type) )
|
||||
# writer.add('// Initializer for required fields')
|
||||
# writer.add('@objc public init(%s) {' % ', '.join(init_params))
|
||||
# writer.push_indent()
|
||||
# writer.add('super.init()')
|
||||
# writer.newline()
|
||||
# for field in self.fields():
|
||||
# accessor_name = field.name_swift
|
||||
# accessor_name = 'set' + accessor_name[0].upper() + accessor_name[1:]
|
||||
# writer.add('%s(%s)' % ( accessor_name, field.name_swift, ) )
|
||||
# writer.pop_indent()
|
||||
# writer.add('}')
|
||||
# writer.newline()
|
||||
|
||||
# Setters
|
||||
for field in self.fields():
|
||||
if field.rules == 'repeated':
|
||||
|
|
|
@ -8,7 +8,6 @@ import Foundation
|
|||
|
||||
public enum WebRTCProtoError: Error {
|
||||
case invalidProtobuf(description: String)
|
||||
case unsafeProtobuf(description: String)
|
||||
}
|
||||
|
||||
// MARK: - WebRTCProtoConnected
|
||||
|
@ -23,6 +22,13 @@ public enum WebRTCProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(id: UInt64) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
@ -102,6 +108,13 @@ public enum WebRTCProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(id: UInt64) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
@ -181,6 +194,13 @@ public enum WebRTCProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(id: UInt64) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
@ -348,17 +368,17 @@ public enum WebRTCProtoError: Error {
|
|||
}
|
||||
|
||||
fileprivate class func parseProto(_ proto: WebRTCProtos_Data) throws -> WebRTCProtoData {
|
||||
var connected: WebRTCProtoConnected? = nil
|
||||
var connected: WebRTCProtoConnected?
|
||||
if proto.hasConnected {
|
||||
connected = try WebRTCProtoConnected.parseProto(proto.connected)
|
||||
}
|
||||
|
||||
var hangup: WebRTCProtoHangup? = nil
|
||||
var hangup: WebRTCProtoHangup?
|
||||
if proto.hasHangup {
|
||||
hangup = try WebRTCProtoHangup.parseProto(proto.hangup)
|
||||
}
|
||||
|
||||
var videoStreamingStatus: WebRTCProtoVideoStreamingStatus? = nil
|
||||
var videoStreamingStatus: WebRTCProtoVideoStreamingStatus?
|
||||
if proto.hasVideoStreamingStatus {
|
||||
videoStreamingStatus = try WebRTCProtoVideoStreamingStatus.parseProto(proto.videoStreamingStatus)
|
||||
}
|
||||
|
|
|
@ -122,24 +122,29 @@ public class MessageFetcherJob: NSObject {
|
|||
do {
|
||||
let params = ParamParser(dictionary: messageDict)
|
||||
|
||||
let builder = SSKProtoEnvelope.SSKProtoEnvelopeBuilder()
|
||||
|
||||
let typeInt: Int32 = try params.required(key: "type")
|
||||
guard let type: SSKProtoEnvelope.SSKProtoEnvelopeType = SSKProtoEnvelope.SSKProtoEnvelopeType(rawValue: typeInt) else {
|
||||
Logger.error("\(self.logTag) `typeInt` was invalid: \(typeInt)")
|
||||
Logger.error("\(self.logTag) `type` was invalid: \(typeInt)")
|
||||
throw ParamParser.ParseError.invalidFormat("type")
|
||||
}
|
||||
builder.setType(type)
|
||||
|
||||
if let timestamp: UInt64 = try params.required(key: "timestamp") {
|
||||
builder.setTimestamp(timestamp)
|
||||
guard let source: String = try params.required(key: "source") else {
|
||||
Logger.error("\(self.logTag) `source` was invalid: \(typeInt)")
|
||||
throw ParamParser.ParseError.invalidFormat("source")
|
||||
}
|
||||
if let source: String = try params.required(key: "source") {
|
||||
builder.setSource(source)
|
||||
|
||||
guard let timestamp: UInt64 = try params.required(key: "timestamp") else {
|
||||
Logger.error("\(self.logTag) `timestamp` was invalid: \(typeInt)")
|
||||
throw ParamParser.ParseError.invalidFormat("timestamp")
|
||||
}
|
||||
if let sourceDevice: UInt32 = try params.required(key: "sourceDevice") {
|
||||
builder.setSourceDevice(sourceDevice)
|
||||
|
||||
guard let sourceDevice: UInt32 = try params.required(key: "sourceDevice") else {
|
||||
Logger.error("\(self.logTag) `sourceDevice` was invalid: \(typeInt)")
|
||||
throw ParamParser.ParseError.invalidFormat("sourceDevice")
|
||||
}
|
||||
|
||||
let builder = SSKProtoEnvelope.SSKProtoEnvelopeBuilder(type: type, source: source, sourceDevice: sourceDevice, timestamp: timestamp)
|
||||
|
||||
if let legacyMessage = try params.optionalBase64EncodedData(key: "message") {
|
||||
builder.setLegacyMessage(legacyMessage)
|
||||
}
|
||||
|
|
|
@ -3396,11 +3396,11 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac
|
|||
}
|
||||
}();
|
||||
|
||||
SSKProtoEnvelopeBuilder *envelopeBuilder = [SSKProtoEnvelopeBuilder new];
|
||||
envelopeBuilder.type = SSKProtoEnvelopeTypeCiphertext;
|
||||
envelopeBuilder.source = source;
|
||||
envelopeBuilder.sourceDevice = 1;
|
||||
envelopeBuilder.timestamp = timestamp;
|
||||
SSKProtoEnvelopeBuilder *envelopeBuilder =
|
||||
[[SSKProtoEnvelopeBuilder alloc] initWithType:SSKProtoEnvelopeTypeCiphertext
|
||||
source:source
|
||||
sourceDevice:1
|
||||
timestamp:timestamp];
|
||||
NSError *error;
|
||||
SSKProtoEnvelope *_Nullable envelope = [envelopeBuilder buildAndReturnError:&error];
|
||||
if (error || !envelope) {
|
||||
|
@ -3894,9 +3894,9 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac
|
|||
|
||||
if ([thread isKindOfClass:[TSGroupThread class]]) {
|
||||
TSGroupThread *groupThread = (TSGroupThread *)thread;
|
||||
SSKProtoGroupContextBuilder *groupBuilder = [SSKProtoGroupContextBuilder new];
|
||||
[groupBuilder setType:SSKProtoGroupContextTypeDeliver];
|
||||
[groupBuilder setId:groupThread.groupModel.groupId];
|
||||
SSKProtoGroupContextBuilder *groupBuilder =
|
||||
[[SSKProtoGroupContextBuilder alloc] initWithId:groupThread.groupModel.groupId
|
||||
type:SSKProtoGroupContextTypeDeliver];
|
||||
[dataMessageBuilder setGroup:groupBuilder.buildIgnoringErrors];
|
||||
}
|
||||
|
||||
|
@ -3919,11 +3919,10 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac
|
|||
SSKProtoEnvelopeType envelopeType = SSKProtoEnvelopeTypeCiphertext;
|
||||
NSData *content = plaintextData;
|
||||
|
||||
SSKProtoEnvelopeBuilder *envelopeBuilder = [SSKProtoEnvelopeBuilder new];
|
||||
envelopeBuilder.type = envelopeType;
|
||||
envelopeBuilder.source = source;
|
||||
envelopeBuilder.sourceDevice = sourceDevice;
|
||||
envelopeBuilder.timestamp = timestamp;
|
||||
SSKProtoEnvelopeBuilder *envelopeBuilder = [[SSKProtoEnvelopeBuilder alloc] initWithType:envelopeType
|
||||
source:source
|
||||
sourceDevice:sourceDevice
|
||||
timestamp:timestamp];
|
||||
envelopeBuilder.content = content;
|
||||
NSError *error;
|
||||
NSData *_Nullable envelopeData = [envelopeBuilder buildSerializedDataAndReturnError:&error];
|
||||
|
|
|
@ -409,11 +409,9 @@ private class SignalCallData: NSObject {
|
|||
|
||||
return peerConnectionClient.setLocalSessionDescription(sessionDescription).then {
|
||||
do {
|
||||
let offerBuilder = SSKProtoCallMessageOffer.SSKProtoCallMessageOfferBuilder()
|
||||
offerBuilder.setId(call.signalingId)
|
||||
offerBuilder.setSessionDescription(sessionDescription.sdp)
|
||||
let offer = try offerBuilder.build()
|
||||
let callMessage = OWSOutgoingCallMessage(thread: call.thread, offerMessage: offer)
|
||||
let offerBuilder = SSKProtoCallMessageOffer.SSKProtoCallMessageOfferBuilder(id: call.signalingId,
|
||||
sessionDescription: sessionDescription.sdp)
|
||||
let callMessage = OWSOutgoingCallMessage(thread: call.thread, offerMessage: try offerBuilder.build())
|
||||
return self.messageSender.sendPromise(message: callMessage)
|
||||
} catch {
|
||||
owsFail("Couldn't build proto in \(#function)")
|
||||
|
@ -547,11 +545,8 @@ private class SignalCallData: NSObject {
|
|||
SwiftAssertIsOnMainThread(#function)
|
||||
|
||||
do {
|
||||
let busyBuilder = SSKProtoCallMessageBusy.SSKProtoCallMessageBusyBuilder()
|
||||
busyBuilder.setId(call.signalingId)
|
||||
let busyMessage = try busyBuilder.build()
|
||||
|
||||
let callMessage = OWSOutgoingCallMessage(thread: call.thread, busyMessage: busyMessage)
|
||||
let busyBuilder = SSKProtoCallMessageBusy.SSKProtoCallMessageBusyBuilder(id: call.signalingId)
|
||||
let callMessage = OWSOutgoingCallMessage(thread: call.thread, busyMessage: try busyBuilder.build())
|
||||
let sendPromise = messageSender.sendPromise(message: callMessage)
|
||||
sendPromise.retainUntilComplete()
|
||||
|
||||
|
@ -720,11 +715,9 @@ private class SignalCallData: NSObject {
|
|||
}
|
||||
|
||||
do {
|
||||
let answerBuilder = SSKProtoCallMessageAnswer.SSKProtoCallMessageAnswerBuilder()
|
||||
answerBuilder.setId(newCall.signalingId)
|
||||
answerBuilder.setSessionDescription(negotiatedSessionDescription.sdp)
|
||||
let answer = try answerBuilder.build()
|
||||
let callAnswerMessage = OWSOutgoingCallMessage(thread: thread, answerMessage: answer)
|
||||
let answerBuilder = SSKProtoCallMessageAnswer.SSKProtoCallMessageAnswerBuilder(id: newCall.signalingId,
|
||||
sessionDescription: negotiatedSessionDescription.sdp)
|
||||
let callAnswerMessage = OWSOutgoingCallMessage(thread: thread, answerMessage: try answerBuilder.build())
|
||||
|
||||
return self.messageSender.sendPromise(message: callAnswerMessage)
|
||||
} catch {
|
||||
|
@ -866,14 +859,11 @@ private class SignalCallData: NSObject {
|
|||
* include network accessibility information from the perspective of each client. Once compatible ICEUpdates have been
|
||||
* exchanged, the clients can connect.
|
||||
*/
|
||||
let iceUpdateBuilder = SSKProtoCallMessageIceUpdate.SSKProtoCallMessageIceUpdateBuilder()
|
||||
iceUpdateBuilder.setId(call.signalingId)
|
||||
iceUpdateBuilder.setSdp(iceCandidate.sdp)
|
||||
iceUpdateBuilder.setSdpMlineIndex(UInt32(iceCandidate.sdpMLineIndex))
|
||||
iceUpdateBuilder.setSdpMid(sdpMid)
|
||||
let iceUpdate = try iceUpdateBuilder.build()
|
||||
|
||||
let callMessage = OWSOutgoingCallMessage(thread: call.thread, iceUpdateMessage: iceUpdate)
|
||||
let iceUpdateBuilder = SSKProtoCallMessageIceUpdate.SSKProtoCallMessageIceUpdateBuilder(id: call.signalingId,
|
||||
sdpMid: sdpMid,
|
||||
sdpMlineIndex: UInt32(iceCandidate.sdpMLineIndex),
|
||||
sdp: iceCandidate.sdp)
|
||||
let callMessage = OWSOutgoingCallMessage(thread: call.thread, iceUpdateMessage: try iceUpdateBuilder.build())
|
||||
let sendPromise = self.messageSender.sendPromise(message: callMessage)
|
||||
sendPromise.retainUntilComplete()
|
||||
} catch {
|
||||
|
@ -1049,12 +1039,9 @@ private class SignalCallData: NSObject {
|
|||
|
||||
var messageData: Data
|
||||
do {
|
||||
let connectedBuilder = WebRTCProtoConnected.WebRTCProtoConnectedBuilder()
|
||||
connectedBuilder.setId(call.signalingId)
|
||||
let connectedProto = try connectedBuilder.build()
|
||||
|
||||
let connectedBuilder = WebRTCProtoConnected.WebRTCProtoConnectedBuilder(id: call.signalingId)
|
||||
let dataBuilder = WebRTCProtoData.WebRTCProtoDataBuilder()
|
||||
dataBuilder.setConnected(connectedProto)
|
||||
dataBuilder.setConnected(try connectedBuilder.build())
|
||||
messageData = try dataBuilder.buildSerializedData()
|
||||
} catch {
|
||||
handleFailedCall(failedCall: call, error: CallError.assertionError(description: "\(self.logTag) couldn't build proto in \(#function)"))
|
||||
|
@ -1190,12 +1177,9 @@ private class SignalCallData: NSObject {
|
|||
|
||||
var messageData: Data
|
||||
do {
|
||||
let hangupBuilder = WebRTCProtoHangup.WebRTCProtoHangupBuilder()
|
||||
hangupBuilder.setId(call.signalingId)
|
||||
let hangupProto = try hangupBuilder.build()
|
||||
|
||||
let hangupBuilder = WebRTCProtoHangup.WebRTCProtoHangupBuilder(id: call.signalingId)
|
||||
let dataBuilder = WebRTCProtoData.WebRTCProtoDataBuilder()
|
||||
dataBuilder.setHangup(hangupProto)
|
||||
dataBuilder.setHangup(try hangupBuilder.build())
|
||||
messageData = try dataBuilder.buildSerializedData()
|
||||
} catch {
|
||||
handleFailedCall(failedCall: call, error: CallError.assertionError(description: "\(self.logTag) couldn't build proto in \(#function)"))
|
||||
|
@ -1209,11 +1193,8 @@ 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.
|
||||
do {
|
||||
let hangupBuilder = SSKProtoCallMessageHangup.SSKProtoCallMessageHangupBuilder()
|
||||
hangupBuilder.setId(call.signalingId)
|
||||
let hangupProto = try hangupBuilder.build()
|
||||
|
||||
let callMessage = OWSOutgoingCallMessage(thread: call.thread, hangupMessage: hangupProto)
|
||||
let hangupBuilder = SSKProtoCallMessageHangup.SSKProtoCallMessageHangupBuilder(id: call.signalingId)
|
||||
let callMessage = OWSOutgoingCallMessage(thread: call.thread, hangupMessage: try hangupBuilder.build())
|
||||
let sendPromise = self.messageSender.sendPromise(message: callMessage).then {
|
||||
Logger.debug("\(self.logTag) successfully sent hangup call message to \(call.thread.contactIdentifier())")
|
||||
}.catch { error in
|
||||
|
@ -1704,13 +1685,10 @@ private class SignalCallData: NSObject {
|
|||
|
||||
var messageData: Data
|
||||
do {
|
||||
let videoStreamingStatusBuilder = WebRTCProtoVideoStreamingStatus.WebRTCProtoVideoStreamingStatusBuilder()
|
||||
videoStreamingStatusBuilder.setId(call.signalingId)
|
||||
let videoStreamingStatusBuilder = WebRTCProtoVideoStreamingStatus.WebRTCProtoVideoStreamingStatusBuilder(id: call.signalingId)
|
||||
videoStreamingStatusBuilder.setEnabled(shouldHaveLocalVideoTrack)
|
||||
let videoStreamingStatusProto = try videoStreamingStatusBuilder.build()
|
||||
|
||||
let dataBuilder = WebRTCProtoData.WebRTCProtoDataBuilder()
|
||||
dataBuilder.setVideoStreamingStatus(videoStreamingStatusProto)
|
||||
dataBuilder.setVideoStreamingStatus(try videoStreamingStatusBuilder.build())
|
||||
messageData = try dataBuilder.buildSerializedData()
|
||||
} catch {
|
||||
Logger.error("\(self.logTag) couldn't build proto in \(#function)")
|
||||
|
|
|
@ -126,9 +126,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
}
|
||||
|
||||
SignalIOSProtoBackupSnapshotBackupEntityBuilder *entityBuilder =
|
||||
[SignalIOSProtoBackupSnapshotBackupEntityBuilder new];
|
||||
[entityBuilder setType:entityType];
|
||||
[entityBuilder setEntityData:data];
|
||||
[[SignalIOSProtoBackupSnapshotBackupEntityBuilder alloc] initWithType:entityType entityData:data];
|
||||
|
||||
NSError *error;
|
||||
SignalIOSProtoBackupSnapshotBackupEntity *_Nullable entity = [entityBuilder buildAndReturnError:&error];
|
||||
|
|
|
@ -51,14 +51,14 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
|
||||
- (nullable NSData *)buildEncryptedMessageBody
|
||||
{
|
||||
ProvisioningProtoProvisionMessageBuilder *messageBuilder = [ProvisioningProtoProvisionMessageBuilder new];
|
||||
messageBuilder.identityKeyPublic = self.myPublicKey;
|
||||
messageBuilder.identityKeyPrivate = self.myPrivateKey;
|
||||
messageBuilder.number = self.accountIdentifier;
|
||||
messageBuilder.provisioningCode = self.provisioningCode;
|
||||
messageBuilder.userAgent = @"OWI";
|
||||
messageBuilder.readReceipts = self.areReadReceiptsEnabled;
|
||||
messageBuilder.profileKey = self.profileKey;
|
||||
ProvisioningProtoProvisionMessageBuilder *messageBuilder =
|
||||
[[ProvisioningProtoProvisionMessageBuilder alloc] initWithIdentityKeyPublic:self.myPublicKey
|
||||
identityKeyPrivate:self.myPrivateKey
|
||||
number:self.accountIdentifier
|
||||
provisioningCode:self.provisioningCode
|
||||
userAgent:@"OWI"
|
||||
profileKey:self.profileKey
|
||||
readReceipts:self.areReadReceiptsEnabled];
|
||||
|
||||
NSError *error;
|
||||
NSData *_Nullable plainTextProvisionMessage = [messageBuilder buildSerializedDataAndReturnError:&error];
|
||||
|
@ -74,10 +74,10 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
return nil;
|
||||
}
|
||||
|
||||
ProvisioningProtoProvisionEnvelopeBuilder *envelopeBuilder = [ProvisioningProtoProvisionEnvelopeBuilder new];
|
||||
// Note that this is a one-time-use *cipher* public key, not our Signal *identity* public key
|
||||
envelopeBuilder.publicKey = [cipher.ourPublicKey prependKeyType];
|
||||
envelopeBuilder.body = encryptedProvisionMessage;
|
||||
ProvisioningProtoProvisionEnvelopeBuilder *envelopeBuilder =
|
||||
[[ProvisioningProtoProvisionEnvelopeBuilder alloc] initWithPublicKey:[cipher.ourPublicKey prependKeyType]
|
||||
body:encryptedProvisionMessage];
|
||||
|
||||
NSData *_Nullable envelopeData = [envelopeBuilder buildSerializedDataAndReturnError:&error];
|
||||
if (!envelopeData || error) {
|
||||
|
|
|
@ -38,9 +38,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
SSKProtoSyncMessageBuilder *syncMessageBuilder = [SSKProtoSyncMessageBuilder new];
|
||||
for (OWSLinkedDeviceReadReceipt *readReceipt in self.readReceipts) {
|
||||
SSKProtoSyncMessageReadBuilder *readProtoBuilder =
|
||||
[SSKProtoSyncMessageReadBuilder new];
|
||||
[readProtoBuilder setSender:readReceipt.senderId];
|
||||
[readProtoBuilder setTimestamp:readReceipt.messageIdTimestamp];
|
||||
[[SSKProtoSyncMessageReadBuilder alloc] initWithSender:readReceipt.senderId
|
||||
timestamp:readReceipt.messageIdTimestamp];
|
||||
|
||||
NSError *error;
|
||||
SSKProtoSyncMessageRead *_Nullable readProto = [readProtoBuilder buildAndReturnError:&error];
|
||||
|
|
|
@ -79,8 +79,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
- (nullable SSKProtoReceiptMessage *)buildReceiptMessage:(NSString *)recipientId
|
||||
{
|
||||
SSKProtoReceiptMessageBuilder *builder = [SSKProtoReceiptMessageBuilder new];
|
||||
|
||||
[builder setType:SSKProtoReceiptMessageTypeRead];
|
||||
|
||||
OWSAssert(self.messageTimestamps.count > 0);
|
||||
for (NSNumber *messageTimestamp in self.messageTimestamps) {
|
||||
[builder addTimestamp:[messageTimestamp unsignedLongLongValue]];
|
||||
|
|
|
@ -59,9 +59,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
|
||||
- (nullable SSKProtoDataMessageBuilder *)dataMessageBuilder
|
||||
{
|
||||
SSKProtoGroupContextBuilder *groupContextBuilder = [SSKProtoGroupContextBuilder new];
|
||||
[groupContextBuilder setType:SSKProtoGroupContextTypeRequestInfo];
|
||||
[groupContextBuilder setId:self.groupId];
|
||||
SSKProtoGroupContextBuilder *groupContextBuilder =
|
||||
[[SSKProtoGroupContextBuilder alloc] initWithId:self.groupId type:SSKProtoGroupContextTypeRequestInfo];
|
||||
|
||||
NSError *error;
|
||||
SSKProtoGroupContext *_Nullable groupContextProto = [groupContextBuilder buildAndReturnError:&error];
|
||||
|
|
|
@ -491,10 +491,10 @@ NSString *const kNSNotification_SocketManagerStateDidChange = @"kNSNotification_
|
|||
}
|
||||
}
|
||||
|
||||
WebSocketProtoWebSocketRequestMessageBuilder *requestBuilder = [WebSocketProtoWebSocketRequestMessageBuilder new];
|
||||
[requestBuilder setRequestID:socketMessage.requestId];
|
||||
[requestBuilder setVerb:request.HTTPMethod];
|
||||
[requestBuilder setPath:requestPath];
|
||||
WebSocketProtoWebSocketRequestMessageBuilder *requestBuilder =
|
||||
[[WebSocketProtoWebSocketRequestMessageBuilder alloc] initWithVerb:request.HTTPMethod
|
||||
path:requestPath
|
||||
requestID:socketMessage.requestId];
|
||||
if (jsonData) {
|
||||
// TODO: Do we need body & headers for requests with no parameters?
|
||||
[requestBuilder setBody:jsonData];
|
||||
|
@ -780,10 +780,8 @@ NSString *const kNSNotification_SocketManagerStateDidChange = @"kNSNotification_
|
|||
NSError *error;
|
||||
|
||||
WebSocketProtoWebSocketResponseMessageBuilder *responseBuilder =
|
||||
[WebSocketProtoWebSocketResponseMessageBuilder new];
|
||||
[responseBuilder setStatus:200];
|
||||
[[WebSocketProtoWebSocketResponseMessageBuilder alloc] initWithRequestID:request.requestID status:200];
|
||||
[responseBuilder setMessage:@"OK"];
|
||||
[responseBuilder setRequestID:request.requestID];
|
||||
WebSocketProtoWebSocketResponseMessage *_Nullable response = [responseBuilder buildAndReturnError:&error];
|
||||
if (!response || error) {
|
||||
OWSFail(@"%@ could not build proto: %@", self.logTag, error);
|
||||
|
|
|
@ -8,7 +8,6 @@ import Foundation
|
|||
|
||||
public enum FingerprintProtoError: Error {
|
||||
case invalidProtobuf(description: String)
|
||||
case unsafeProtobuf(description: String)
|
||||
}
|
||||
|
||||
// MARK: - FingerprintProtoLogicalFingerprint
|
||||
|
@ -23,6 +22,13 @@ public enum FingerprintProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(identityData: Data) {
|
||||
super.init()
|
||||
|
||||
setIdentityData(identityData)
|
||||
}
|
||||
|
||||
@objc public func setIdentityData(_ valueParam: Data) {
|
||||
proto.identityData = valueParam
|
||||
}
|
||||
|
@ -102,6 +108,15 @@ public enum FingerprintProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(version: UInt32, localFingerprint: FingerprintProtoLogicalFingerprint, remoteFingerprint: FingerprintProtoLogicalFingerprint) {
|
||||
super.init()
|
||||
|
||||
setVersion(version)
|
||||
setLocalFingerprint(localFingerprint)
|
||||
setRemoteFingerprint(remoteFingerprint)
|
||||
}
|
||||
|
||||
@objc public func setVersion(_ valueParam: UInt32) {
|
||||
proto.version = valueParam
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ import Foundation
|
|||
|
||||
public enum ProvisioningProtoError: Error {
|
||||
case invalidProtobuf(description: String)
|
||||
case unsafeProtobuf(description: String)
|
||||
}
|
||||
|
||||
// MARK: - ProvisioningProtoProvisionEnvelope
|
||||
|
@ -23,6 +22,14 @@ public enum ProvisioningProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(publicKey: Data, body: Data) {
|
||||
super.init()
|
||||
|
||||
setPublicKey(publicKey)
|
||||
setBody(body)
|
||||
}
|
||||
|
||||
@objc public func setPublicKey(_ valueParam: Data) {
|
||||
proto.publicKey = valueParam
|
||||
}
|
||||
|
@ -116,6 +123,19 @@ public enum ProvisioningProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(identityKeyPublic: Data, identityKeyPrivate: Data, number: String, provisioningCode: String, userAgent: String, profileKey: Data, readReceipts: Bool) {
|
||||
super.init()
|
||||
|
||||
setIdentityKeyPublic(identityKeyPublic)
|
||||
setIdentityKeyPrivate(identityKeyPrivate)
|
||||
setNumber(number)
|
||||
setProvisioningCode(provisioningCode)
|
||||
setUserAgent(userAgent)
|
||||
setProfileKey(profileKey)
|
||||
setReadReceipts(readReceipts)
|
||||
}
|
||||
|
||||
@objc public func setIdentityKeyPublic(_ valueParam: Data) {
|
||||
proto.identityKeyPublic = valueParam
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ import Foundation
|
|||
|
||||
public enum SSKProtoError: Error {
|
||||
case invalidProtobuf(description: String)
|
||||
case unsafeProtobuf(description: String)
|
||||
}
|
||||
|
||||
// MARK: - SSKProtoEnvelope
|
||||
|
@ -53,6 +52,16 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(type: SSKProtoEnvelopeType, source: String, sourceDevice: UInt32, timestamp: UInt64) {
|
||||
super.init()
|
||||
|
||||
setType(type)
|
||||
setSource(source)
|
||||
setSourceDevice(sourceDevice)
|
||||
setTimestamp(timestamp)
|
||||
}
|
||||
|
||||
@objc public func setType(_ valueParam: SSKProtoEnvelopeType) {
|
||||
proto.type = SSKProtoEnvelopeTypeUnwrap(valueParam)
|
||||
}
|
||||
|
@ -366,6 +375,14 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(id: UInt64, sessionDescription: String) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
setSessionDescription(sessionDescription)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
@ -459,6 +476,14 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(id: UInt64, sessionDescription: String) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
setSessionDescription(sessionDescription)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
@ -552,6 +577,16 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(id: UInt64, sdpMid: String, sdpMlineIndex: UInt32, sdp: String) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
setSdpMid(sdpMid)
|
||||
setSdpMlineIndex(sdpMlineIndex)
|
||||
setSdp(sdp)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
@ -673,6 +708,13 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(id: UInt64) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
@ -752,6 +794,13 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(id: UInt64) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
@ -1135,6 +1184,14 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(id: UInt64, author: String) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
setAuthor(author)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
@ -2463,6 +2520,13 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(type: SSKProtoReceiptMessageType) {
|
||||
super.init()
|
||||
|
||||
setType(type)
|
||||
}
|
||||
|
||||
@objc public func setType(_ valueParam: SSKProtoReceiptMessageType) {
|
||||
proto.type = SSKProtoReceiptMessageTypeUnwrap(valueParam)
|
||||
}
|
||||
|
@ -2580,6 +2644,13 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(destination: String) {
|
||||
super.init()
|
||||
|
||||
setDestination(destination)
|
||||
}
|
||||
|
||||
@objc public func setDestination(_ valueParam: String) {
|
||||
proto.destination = valueParam
|
||||
}
|
||||
|
@ -2816,6 +2887,13 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(blob: SSKProtoAttachmentPointer) {
|
||||
super.init()
|
||||
|
||||
setBlob(blob)
|
||||
}
|
||||
|
||||
@objc public func setBlob(_ valueParam: SSKProtoAttachmentPointer) {
|
||||
proto.blob = valueParam.proto
|
||||
}
|
||||
|
@ -3097,6 +3175,13 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(type: SSKProtoSyncMessageRequestType) {
|
||||
super.init()
|
||||
|
||||
setType(type)
|
||||
}
|
||||
|
||||
@objc public func setType(_ valueParam: SSKProtoSyncMessageRequestType) {
|
||||
proto.type = SSKProtoSyncMessageRequestTypeUnwrap(valueParam)
|
||||
}
|
||||
|
@ -3176,6 +3261,14 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(sender: String, timestamp: UInt64) {
|
||||
super.init()
|
||||
|
||||
setSender(sender)
|
||||
setTimestamp(timestamp)
|
||||
}
|
||||
|
||||
@objc public func setSender(_ valueParam: String) {
|
||||
proto.sender = valueParam
|
||||
}
|
||||
|
@ -3579,6 +3672,13 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(id: UInt64) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
@ -3802,6 +3902,14 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(id: Data, type: SSKProtoGroupContextType) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
setType(type)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: Data) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
@ -4030,6 +4138,13 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(number: String) {
|
||||
super.init()
|
||||
|
||||
setNumber(number)
|
||||
}
|
||||
|
||||
@objc public func setNumber(_ valueParam: String) {
|
||||
proto.number = valueParam
|
||||
}
|
||||
|
@ -4297,6 +4412,13 @@ public enum SSKProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(id: Data) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: Data) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ import Foundation
|
|||
|
||||
public enum SignalIOSProtoError: Error {
|
||||
case invalidProtobuf(description: String)
|
||||
case unsafeProtobuf(description: String)
|
||||
}
|
||||
|
||||
// MARK: - SignalIOSProtoBackupSnapshotBackupEntity
|
||||
|
@ -53,6 +52,14 @@ public enum SignalIOSProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(type: SignalIOSProtoBackupSnapshotBackupEntityType, entityData: Data) {
|
||||
super.init()
|
||||
|
||||
setType(type)
|
||||
setEntityData(entityData)
|
||||
}
|
||||
|
||||
@objc public func setType(_ valueParam: SignalIOSProtoBackupSnapshotBackupEntityType) {
|
||||
proto.type = SignalIOSProtoBackupSnapshotBackupEntityTypeUnwrap(valueParam)
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ import Foundation
|
|||
|
||||
public enum WebSocketProtoError: Error {
|
||||
case invalidProtobuf(description: String)
|
||||
case unsafeProtobuf(description: String)
|
||||
}
|
||||
|
||||
// MARK: - WebSocketProtoWebSocketRequestMessage
|
||||
|
@ -23,6 +22,15 @@ public enum WebSocketProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(verb: String, path: String, requestID: UInt64) {
|
||||
super.init()
|
||||
|
||||
setVerb(verb)
|
||||
setPath(path)
|
||||
setRequestID(requestID)
|
||||
}
|
||||
|
||||
@objc public func setVerb(_ valueParam: String) {
|
||||
proto.verb = valueParam
|
||||
}
|
||||
|
@ -158,6 +166,14 @@ public enum WebSocketProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(requestID: UInt64, status: UInt32) {
|
||||
super.init()
|
||||
|
||||
setRequestID(requestID)
|
||||
setStatus(status)
|
||||
}
|
||||
|
||||
@objc public func setRequestID(_ valueParam: UInt64) {
|
||||
proto.requestID = valueParam
|
||||
}
|
||||
|
@ -317,6 +333,13 @@ public enum WebSocketProtoError: Error {
|
|||
|
||||
@objc public override init() {}
|
||||
|
||||
// Initializer for required fields
|
||||
@objc public init(type: WebSocketProtoWebSocketMessageType) {
|
||||
super.init()
|
||||
|
||||
setType(type)
|
||||
}
|
||||
|
||||
@objc public func setType(_ valueParam: WebSocketProtoWebSocketMessageType) {
|
||||
proto.type = WebSocketProtoWebSocketMessageTypeUnwrap(valueParam)
|
||||
}
|
||||
|
|
|
@ -276,11 +276,6 @@ static uint32_t const OWSFingerprintDefaultHashIterations = 5200;
|
|||
|
||||
- (nullable UIImage *)image
|
||||
{
|
||||
FingerprintProtoLogicalFingerprintsBuilder *logicalFingerprintsBuilder =
|
||||
[FingerprintProtoLogicalFingerprintsBuilder new];
|
||||
|
||||
logicalFingerprintsBuilder.version = OWSFingerprintScannableFormatVersion;
|
||||
|
||||
FingerprintProtoLogicalFingerprintBuilder *remoteFingerprintBuilder =
|
||||
[FingerprintProtoLogicalFingerprintBuilder new];
|
||||
remoteFingerprintBuilder.identityData = [self scannableData:self.theirFingerprintData];
|
||||
|
@ -291,7 +286,6 @@ static uint32_t const OWSFingerprintDefaultHashIterations = 5200;
|
|||
OWSFail(@"%@ could not build proto: %@", self.logTag, error);
|
||||
return nil;
|
||||
}
|
||||
logicalFingerprintsBuilder.remoteFingerprint = remoteFingerprint;
|
||||
|
||||
FingerprintProtoLogicalFingerprintBuilder *localFingerprintBuilder =
|
||||
[FingerprintProtoLogicalFingerprintBuilder new];
|
||||
|
@ -302,7 +296,11 @@ static uint32_t const OWSFingerprintDefaultHashIterations = 5200;
|
|||
OWSFail(@"%@ could not build proto: %@", self.logTag, error);
|
||||
return nil;
|
||||
}
|
||||
logicalFingerprintsBuilder.localFingerprint = localFingerprint;
|
||||
|
||||
FingerprintProtoLogicalFingerprintsBuilder *logicalFingerprintsBuilder =
|
||||
[[FingerprintProtoLogicalFingerprintsBuilder alloc] initWithVersion:OWSFingerprintScannableFormatVersion
|
||||
localFingerprint:localFingerprint
|
||||
remoteFingerprint:remoteFingerprint];
|
||||
|
||||
// Build ByteMode QR (Latin-1 encodable data)
|
||||
NSData *_Nullable fingerprintData = [logicalFingerprintsBuilder buildSerializedDataAndReturnError:&error];
|
||||
|
|
Loading…
Reference in New Issue