Code generate Swift wrappers for protocol buffers.
This commit is contained in:
parent
d3adb80242
commit
ff8565dbd5
|
@ -407,7 +407,14 @@ class MessageContext(BaseContext):
|
||||||
for field in explict_fields:
|
for field in explict_fields:
|
||||||
type_name = field.type_swift_not_optional if field.is_required else field.type_swift
|
type_name = field.type_swift_not_optional if field.is_required else field.type_swift
|
||||||
writer.add('@objc public let %s: %s' % (field.name_swift, type_name))
|
writer.add('@objc public let %s: %s' % (field.name_swift, type_name))
|
||||||
writer.newline()
|
|
||||||
|
if (not field.is_required) and field.rules != 'repeated':
|
||||||
|
writer.add('@objc public var %s: Bool {' % field.has_accessor_name() )
|
||||||
|
writer.push_indent()
|
||||||
|
writer.add('return proto.%s' % field.has_accessor_name() )
|
||||||
|
writer.pop_indent()
|
||||||
|
writer.add('}')
|
||||||
|
writer.newline()
|
||||||
|
|
||||||
if len(implict_fields) > 0:
|
if len(implict_fields) > 0:
|
||||||
for field in implict_fields:
|
for field in implict_fields:
|
||||||
|
|
|
@ -135,7 +135,6 @@ message DataMessage {
|
||||||
CUSTOM = 4;
|
CUSTOM = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @required
|
|
||||||
optional string value = 1;
|
optional string value = 1;
|
||||||
optional Type type = 2;
|
optional Type type = 2;
|
||||||
optional string label = 3;
|
optional string label = 3;
|
||||||
|
@ -149,7 +148,6 @@ message DataMessage {
|
||||||
CUSTOM = 4;
|
CUSTOM = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @required
|
|
||||||
optional string value = 1;
|
optional string value = 1;
|
||||||
optional Type type = 2;
|
optional Type type = 2;
|
||||||
optional string label = 3;
|
optional string label = 3;
|
||||||
|
|
|
@ -25,7 +25,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
SSKProtoGroupDetailsBuilder *groupBuilder = [SSKProtoGroupDetailsBuilder new];
|
SSKProtoGroupDetailsBuilder *groupBuilder = [SSKProtoGroupDetailsBuilder new];
|
||||||
[groupBuilder setId:group.groupId];
|
[groupBuilder setId:group.groupId];
|
||||||
[groupBuilder setName:group.groupName];
|
[groupBuilder setName:group.groupName];
|
||||||
[groupBuilder setMembersArray:group.groupMemberIds];
|
[groupBuilder setMembers:group.groupMemberIds];
|
||||||
#ifdef CONVERSATION_COLORS_ENABLED
|
#ifdef CONVERSATION_COLORS_ENABLED
|
||||||
[groupBuilder setColor:groupThread.conversationColorName];
|
[groupBuilder setColor:groupThread.conversationColorName];
|
||||||
#endif
|
#endif
|
||||||
|
@ -38,7 +38,14 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
[avatarBuilder setContentType:OWSMimeTypeImagePng];
|
[avatarBuilder setContentType:OWSMimeTypeImagePng];
|
||||||
avatarPng = UIImagePNGRepresentation(group.groupImage);
|
avatarPng = UIImagePNGRepresentation(group.groupImage);
|
||||||
[avatarBuilder setLength:(uint32_t)avatarPng.length];
|
[avatarBuilder setLength:(uint32_t)avatarPng.length];
|
||||||
[groupBuilder setAvatarBuilder:avatarBuilder];
|
|
||||||
|
NSError *error;
|
||||||
|
SSKProtoGroupDetailsAvatar *_Nullable avatarProto = [avatarBuilder buildAndReturnError:&error];
|
||||||
|
if (error || !avatarProto) {
|
||||||
|
OWSFail(@"%@ could not build protobuf: %@", self.logTag, error);
|
||||||
|
} else {
|
||||||
|
[groupBuilder setAvatar:avatarProto];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
OWSDisappearingMessagesConfiguration *_Nullable disappearingMessagesConfiguration =
|
OWSDisappearingMessagesConfiguration *_Nullable disappearingMessagesConfiguration =
|
||||||
|
@ -53,7 +60,18 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
[groupBuilder setExpireTimer:0];
|
[groupBuilder setExpireTimer:0];
|
||||||
}
|
}
|
||||||
|
|
||||||
NSData *groupData = [[groupBuilder build] data];
|
NSError *error;
|
||||||
|
SSKProtoGroupDetails *_Nullable groupProto = [groupBuilder buildAndReturnError:&error];
|
||||||
|
if (error || !groupProto) {
|
||||||
|
OWSFail(@"%@ could not build protobuf: %@", self.logTag, error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
NSData *_Nullable groupData = [groupProto serializedDataAndReturnError:&error];
|
||||||
|
if (error || !groupData) {
|
||||||
|
OWSFail(@"%@ could not serialize protobuf: %@", self.logTag, error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t groupDataLength = (uint32_t)groupData.length;
|
uint32_t groupDataLength = (uint32_t)groupData.length;
|
||||||
|
|
||||||
[self.delegateStream writeRawVarint32:groupDataLength];
|
[self.delegateStream writeRawVarint32:groupDataLength];
|
||||||
|
|
|
@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
* recipientId is nil when building "sent" sync messages for messages
|
* recipientId is nil when building "sent" sync messages for messages
|
||||||
* sent to groups.
|
* sent to groups.
|
||||||
*/
|
*/
|
||||||
- (SSKProtoDataMessage *)buildDataMessage:(NSString *_Nullable)recipientId;
|
- (nullable SSKProtoDataMessage *)buildDataMessage:(NSString *_Nullable)recipientId;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@ -58,7 +58,13 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
SSKProtoSyncMessageSentBuilder *sentBuilder = [SSKProtoSyncMessageSentBuilder new];
|
SSKProtoSyncMessageSentBuilder *sentBuilder = [SSKProtoSyncMessageSentBuilder new];
|
||||||
[sentBuilder setTimestamp:self.message.timestamp];
|
[sentBuilder setTimestamp:self.message.timestamp];
|
||||||
[sentBuilder setDestination:self.sentRecipientId];
|
[sentBuilder setDestination:self.sentRecipientId];
|
||||||
[sentBuilder setMessage:[self.message buildDataMessage:self.sentRecipientId]];
|
|
||||||
|
SSKProtoDataMessage *_Nullable dataMessage = [self.message buildDataMessage:self.sentRecipientId];
|
||||||
|
if (!dataMessage) {
|
||||||
|
OWSFail(@"%@ could not build protobuf: %@", self.logTag, error);
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
[sentBuilder setMessage:dataMessage];
|
||||||
[sentBuilder setExpirationStartTimestamp:self.message.timestamp];
|
[sentBuilder setExpirationStartTimestamp:self.message.timestamp];
|
||||||
|
|
||||||
NSError *error;
|
NSError *error;
|
||||||
|
|
|
@ -930,20 +930,43 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
|
||||||
}
|
}
|
||||||
|
|
||||||
// recipientId is nil when building "sent" sync messages for messages sent to groups.
|
// recipientId is nil when building "sent" sync messages for messages sent to groups.
|
||||||
- (SSKProtoDataMessage *)buildDataMessage:(NSString *_Nullable)recipientId
|
- (nullable SSKProtoDataMessage *)buildDataMessage:(NSString *_Nullable)recipientId
|
||||||
{
|
{
|
||||||
OWSAssert(self.thread);
|
OWSAssert(self.thread);
|
||||||
SSKProtoDataMessageBuilder *builder = [self dataMessageBuilder];
|
SSKProtoDataMessageBuilder *builder = [self dataMessageBuilder];
|
||||||
[builder addLocalProfileKeyIfNecessary:self.thread recipientId:recipientId];
|
[builder addLocalProfileKeyIfNecessary:self.thread recipientId:recipientId];
|
||||||
|
|
||||||
return [builder build];
|
NSError *error;
|
||||||
|
SSKProtoDataMessage *_Nullable dataProto = [builder buildAndReturnError:&error];
|
||||||
|
if (error || !dataProto) {
|
||||||
|
OWSFail(@"%@ could not build protobuf: %@", self.logTag, error);
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
return dataProto;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (nullable NSData *)buildPlainTextData:(SignalRecipient *)recipient
|
- (nullable NSData *)buildPlainTextData:(SignalRecipient *)recipient
|
||||||
{
|
{
|
||||||
|
NSError *error;
|
||||||
|
SSKProtoDataMessage *_Nullable dataMessage = [self buildDataMessage:self.recipientId];
|
||||||
|
if (!dataMessage) {
|
||||||
|
OWSFail(@"%@ could not build protobuf: %@", self.logTag, error);
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
SSKProtoContentBuilder *contentBuilder = [SSKProtoContentBuilder new];
|
SSKProtoContentBuilder *contentBuilder = [SSKProtoContentBuilder new];
|
||||||
contentBuilder.dataMessage = [self buildDataMessage:recipient.recipientId];
|
[contentBuilder setDataMessage:dataMessage];
|
||||||
return [[contentBuilder build] data];
|
SSKProtoContent *_Nullable contentProto = [contentBuilder buildAndReturnError:&error];
|
||||||
|
if (error || !contentProto) {
|
||||||
|
OWSFail(@"%@ could not build protobuf: %@", self.logTag, error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
NSData *_Nullable contentData = [contentProto serializedDataAndReturnError:&error];
|
||||||
|
if (error || !contentData) {
|
||||||
|
OWSFail(@"%@ could not serialize protobuf: %@", self.logTag, error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return contentData;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)shouldSyncTranscript
|
- (BOOL)shouldSyncTranscript
|
||||||
|
|
|
@ -294,32 +294,44 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (envelope.content != nil) {
|
if (envelope.hasContent) {
|
||||||
SSKProtoContent *content = [SSKProtoContent parseFromData:plaintextData];
|
NSError *error;
|
||||||
DDLogInfo(@"%@ handling content: <Content: %@>", self.logTag, [self descriptionForContent:content]);
|
SSKProtoContent *_Nullable contentProto = [SSKProtoContent parseData:plaintextData error:&error];
|
||||||
|
if (error || !contentProto) {
|
||||||
|
OWSFail(@"%@ could not parse proto: %@", self.logTag, error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DDLogInfo(@"%@ handling content: <Content: %@>", self.logTag, [self descriptionForContent:contentProto]);
|
||||||
|
|
||||||
if (content.hasSyncMessage) {
|
if (contentProto.hasSyncMessage) {
|
||||||
[self handleIncomingEnvelope:envelope withSyncMessage:content.syncMessage transaction:transaction];
|
[self handleIncomingEnvelope:envelope withSyncMessage:contentProto.syncMessage transaction:transaction];
|
||||||
|
|
||||||
[[OWSDeviceManager sharedManager] setHasReceivedSyncMessage];
|
[[OWSDeviceManager sharedManager] setHasReceivedSyncMessage];
|
||||||
} else if (content.hasDataMessage) {
|
} else if (contentProto.hasDataMessage) {
|
||||||
[self handleIncomingEnvelope:envelope withDataMessage:content.dataMessage transaction:transaction];
|
[self handleIncomingEnvelope:envelope withDataMessage:contentProto.dataMessage transaction:transaction];
|
||||||
} else if (content.hasCallMessage) {
|
} else if (contentProto.hasCallMessage) {
|
||||||
[self handleIncomingEnvelope:envelope withCallMessage:content.callMessage];
|
[self handleIncomingEnvelope:envelope withCallMessage:contentProto.callMessage];
|
||||||
} else if (content.hasNullMessage) {
|
} else if (contentProto.hasNullMessage) {
|
||||||
DDLogInfo(@"%@ Received null message.", self.logTag);
|
DDLogInfo(@"%@ Received null message.", self.logTag);
|
||||||
} else if (content.hasReceiptMessage) {
|
} else if (contentProto.hasReceiptMessage) {
|
||||||
[self handleIncomingEnvelope:envelope withReceiptMessage:content.receiptMessage transaction:transaction];
|
[self handleIncomingEnvelope:envelope
|
||||||
|
withReceiptMessage:contentProto.receiptMessage
|
||||||
|
transaction:transaction];
|
||||||
} else {
|
} else {
|
||||||
DDLogWarn(@"%@ Ignoring envelope. Content with no known payload", self.logTag);
|
DDLogWarn(@"%@ Ignoring envelope. Content with no known payload", self.logTag);
|
||||||
}
|
}
|
||||||
} else if (envelope.legacyMessage != nil) { // DEPRECATED - Remove after all clients have been upgraded.
|
} else if (envelope.hasLegacyMessage) { // DEPRECATED - Remove after all clients have been upgraded.
|
||||||
SSKProtoDataMessage *dataMessage =
|
NSError *error;
|
||||||
[SSKProtoDataMessage parseFromData:plaintextData];
|
SSKProtoDataMessage *_Nullable dataMessageProto = [SSKProtoDataMessage parseData:plaintextData error:&error];
|
||||||
DDLogInfo(
|
if (error || !dataMessageProto) {
|
||||||
@"%@ handling message: <DataMessage: %@ />", self.logTag, [self descriptionForDataMessage:dataMessage]);
|
OWSFail(@"%@ could not parse proto: %@", self.logTag, error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DDLogInfo(@"%@ handling message: <DataMessage: %@ />",
|
||||||
|
self.logTag,
|
||||||
|
[self descriptionForDataMessage:dataMessageProto]);
|
||||||
|
|
||||||
[self handleIncomingEnvelope:envelope withDataMessage:dataMessage transaction:transaction];
|
[self handleIncomingEnvelope:envelope withDataMessage:dataMessageProto transaction:transaction];
|
||||||
} else {
|
} else {
|
||||||
OWSProdInfoWEnvelope([OWSAnalyticsEvents messageManagerErrorEnvelopeNoActionablePayload], envelope);
|
OWSProdInfoWEnvelope([OWSAnalyticsEvents messageManagerErrorEnvelopeNoActionablePayload], envelope);
|
||||||
}
|
}
|
||||||
|
@ -436,12 +448,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
OWSAssert(receiptMessage);
|
OWSAssert(receiptMessage);
|
||||||
OWSAssert(transaction);
|
OWSAssert(transaction);
|
||||||
|
|
||||||
PBArray *messageTimestamps = receiptMessage.timestamp;
|
NSArray<NSNumber *> *sentTimestamps = receiptMessage.timestamp;
|
||||||
NSMutableArray<NSNumber *> *sentTimestamps = [NSMutableArray new];
|
|
||||||
for (int i = 0; i < messageTimestamps.count; i++) {
|
|
||||||
UInt64 timestamp = [messageTimestamps uint64AtIndex:i];
|
|
||||||
[sentTimestamps addObject:@(timestamp)];
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (receiptMessage.type) {
|
switch (receiptMessage.type) {
|
||||||
case SSKProtoReceiptMessageTypeDelivery:
|
case SSKProtoReceiptMessageTypeDelivery:
|
||||||
|
|
|
@ -41,7 +41,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (SSKProtoDataMessage *)buildDataMessage:(NSString *_Nullable)recipientId
|
- (nullable SSKProtoDataMessage *)buildDataMessage:(NSString *_Nullable)recipientId
|
||||||
{
|
{
|
||||||
OWSAssert(self.thread);
|
OWSAssert(self.thread);
|
||||||
|
|
||||||
|
@ -57,7 +57,13 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
[profileManager addUserToProfileWhitelist:recipientId];
|
[profileManager addUserToProfileWhitelist:recipientId];
|
||||||
}
|
}
|
||||||
|
|
||||||
return [builder build];
|
NSError *error;
|
||||||
|
SSKProtoDataMessage *_Nullable dataProto = [builder buildAndReturnError:&error];
|
||||||
|
if (error || !dataProto) {
|
||||||
|
OWSFail(@"%@ could not build protobuf: %@", self.logTag, error);
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
return dataProto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -89,8 +89,11 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_Envelope
|
fileprivate let proto: SignalServiceProtos_Envelope
|
||||||
|
|
||||||
@objc public let type: SSKProtoEnvelopeType
|
@objc public let type: SSKProtoEnvelopeType
|
||||||
|
|
||||||
@objc public let source: String
|
@objc public let source: String
|
||||||
|
|
||||||
@objc public let sourceDevice: UInt32
|
@objc public let sourceDevice: UInt32
|
||||||
|
|
||||||
@objc public let timestamp: UInt64
|
@objc public let timestamp: UInt64
|
||||||
|
|
||||||
@objc public var relay: String? {
|
@objc public var relay: String? {
|
||||||
|
@ -220,10 +223,29 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_Content
|
fileprivate let proto: SignalServiceProtos_Content
|
||||||
|
|
||||||
@objc public let dataMessage: SSKProtoDataMessage?
|
@objc public let dataMessage: SSKProtoDataMessage?
|
||||||
|
@objc public var hasDataMessage: Bool {
|
||||||
|
return proto.hasDataMessage
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let syncMessage: SSKProtoSyncMessage?
|
@objc public let syncMessage: SSKProtoSyncMessage?
|
||||||
|
@objc public var hasSyncMessage: Bool {
|
||||||
|
return proto.hasSyncMessage
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let callMessage: SSKProtoCallMessage?
|
@objc public let callMessage: SSKProtoCallMessage?
|
||||||
|
@objc public var hasCallMessage: Bool {
|
||||||
|
return proto.hasCallMessage
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let nullMessage: SSKProtoNullMessage?
|
@objc public let nullMessage: SSKProtoNullMessage?
|
||||||
|
@objc public var hasNullMessage: Bool {
|
||||||
|
return proto.hasNullMessage
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let receiptMessage: SSKProtoReceiptMessage?
|
@objc public let receiptMessage: SSKProtoReceiptMessage?
|
||||||
|
@objc public var hasReceiptMessage: Bool {
|
||||||
|
return proto.hasReceiptMessage
|
||||||
|
}
|
||||||
|
|
||||||
private init(proto: SignalServiceProtos_Content,
|
private init(proto: SignalServiceProtos_Content,
|
||||||
dataMessage: SSKProtoDataMessage?,
|
dataMessage: SSKProtoDataMessage?,
|
||||||
|
@ -701,10 +723,26 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_CallMessage
|
fileprivate let proto: SignalServiceProtos_CallMessage
|
||||||
|
|
||||||
@objc public let offer: SSKProtoCallMessageOffer?
|
@objc public let offer: SSKProtoCallMessageOffer?
|
||||||
|
@objc public var hasOffer: Bool {
|
||||||
|
return proto.hasOffer
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let answer: SSKProtoCallMessageAnswer?
|
@objc public let answer: SSKProtoCallMessageAnswer?
|
||||||
|
@objc public var hasAnswer: Bool {
|
||||||
|
return proto.hasAnswer
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let iceUpdate: [SSKProtoCallMessageIceUpdate]
|
@objc public let iceUpdate: [SSKProtoCallMessageIceUpdate]
|
||||||
|
|
||||||
@objc public let hangup: SSKProtoCallMessageHangup?
|
@objc public let hangup: SSKProtoCallMessageHangup?
|
||||||
|
@objc public var hasHangup: Bool {
|
||||||
|
return proto.hasHangup
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let busy: SSKProtoCallMessageBusy?
|
@objc public let busy: SSKProtoCallMessageBusy?
|
||||||
|
@objc public var hasBusy: Bool {
|
||||||
|
return proto.hasBusy
|
||||||
|
}
|
||||||
|
|
||||||
@objc public var profileKey: Data? {
|
@objc public var profileKey: Data? {
|
||||||
guard proto.hasProfileKey else {
|
guard proto.hasProfileKey else {
|
||||||
|
@ -836,6 +874,9 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_DataMessage.Quote.QuotedAttachment
|
fileprivate let proto: SignalServiceProtos_DataMessage.Quote.QuotedAttachment
|
||||||
|
|
||||||
@objc public let thumbnail: SSKProtoAttachmentPointer?
|
@objc public let thumbnail: SSKProtoAttachmentPointer?
|
||||||
|
@objc public var hasThumbnail: Bool {
|
||||||
|
return proto.hasThumbnail
|
||||||
|
}
|
||||||
|
|
||||||
@objc public var contentType: String? {
|
@objc public var contentType: String? {
|
||||||
guard proto.hasContentType else {
|
guard proto.hasContentType else {
|
||||||
|
@ -943,7 +984,9 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_DataMessage.Quote
|
fileprivate let proto: SignalServiceProtos_DataMessage.Quote
|
||||||
|
|
||||||
@objc public let id: UInt64
|
@objc public let id: UInt64
|
||||||
|
|
||||||
@objc public let author: String
|
@objc public let author: String
|
||||||
|
|
||||||
@objc public let attachments: [SSKProtoDataMessageQuoteQuotedAttachment]
|
@objc public let attachments: [SSKProtoDataMessageQuoteQuotedAttachment]
|
||||||
|
|
||||||
@objc public var text: String? {
|
@objc public var text: String? {
|
||||||
|
@ -1192,7 +1235,15 @@ public enum SSKProtoError: Error {
|
||||||
|
|
||||||
fileprivate let proto: SignalServiceProtos_DataMessage.Contact.Phone
|
fileprivate let proto: SignalServiceProtos_DataMessage.Contact.Phone
|
||||||
|
|
||||||
@objc public let value: String
|
@objc public var value: String? {
|
||||||
|
guard proto.hasValue else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return proto.value
|
||||||
|
}
|
||||||
|
@objc public var hasValue: Bool {
|
||||||
|
return proto.hasValue
|
||||||
|
}
|
||||||
|
|
||||||
@objc public var type: SSKProtoDataMessageContactPhoneType {
|
@objc public var type: SSKProtoDataMessageContactPhoneType {
|
||||||
return SSKProtoDataMessageContactPhone.SSKProtoDataMessageContactPhoneTypeWrap(proto.type)
|
return SSKProtoDataMessageContactPhone.SSKProtoDataMessageContactPhoneTypeWrap(proto.type)
|
||||||
|
@ -1211,10 +1262,8 @@ public enum SSKProtoError: Error {
|
||||||
return proto.hasLabel
|
return proto.hasLabel
|
||||||
}
|
}
|
||||||
|
|
||||||
private init(proto: SignalServiceProtos_DataMessage.Contact.Phone,
|
private init(proto: SignalServiceProtos_DataMessage.Contact.Phone) {
|
||||||
value: String) {
|
|
||||||
self.proto = proto
|
self.proto = proto
|
||||||
self.value = value
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc
|
@objc
|
||||||
|
@ -1228,17 +1277,11 @@ public enum SSKProtoError: Error {
|
||||||
}
|
}
|
||||||
|
|
||||||
fileprivate class func parseProto(_ proto: SignalServiceProtos_DataMessage.Contact.Phone) throws -> SSKProtoDataMessageContactPhone {
|
fileprivate class func parseProto(_ proto: SignalServiceProtos_DataMessage.Contact.Phone) throws -> SSKProtoDataMessageContactPhone {
|
||||||
guard proto.hasValue else {
|
|
||||||
throw SSKProtoError.invalidProtobuf(description: "\(logTag) missing required field: value")
|
|
||||||
}
|
|
||||||
let value = proto.value
|
|
||||||
|
|
||||||
// MARK: - Begin Validation Logic for SSKProtoDataMessageContactPhone -
|
// MARK: - Begin Validation Logic for SSKProtoDataMessageContactPhone -
|
||||||
|
|
||||||
// MARK: - End Validation Logic for SSKProtoDataMessageContactPhone -
|
// MARK: - End Validation Logic for SSKProtoDataMessageContactPhone -
|
||||||
|
|
||||||
let result = SSKProtoDataMessageContactPhone(proto: proto,
|
let result = SSKProtoDataMessageContactPhone(proto: proto)
|
||||||
value: value)
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1302,7 +1345,15 @@ public enum SSKProtoError: Error {
|
||||||
|
|
||||||
fileprivate let proto: SignalServiceProtos_DataMessage.Contact.Email
|
fileprivate let proto: SignalServiceProtos_DataMessage.Contact.Email
|
||||||
|
|
||||||
@objc public let value: String
|
@objc public var value: String? {
|
||||||
|
guard proto.hasValue else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return proto.value
|
||||||
|
}
|
||||||
|
@objc public var hasValue: Bool {
|
||||||
|
return proto.hasValue
|
||||||
|
}
|
||||||
|
|
||||||
@objc public var type: SSKProtoDataMessageContactEmailType {
|
@objc public var type: SSKProtoDataMessageContactEmailType {
|
||||||
return SSKProtoDataMessageContactEmail.SSKProtoDataMessageContactEmailTypeWrap(proto.type)
|
return SSKProtoDataMessageContactEmail.SSKProtoDataMessageContactEmailTypeWrap(proto.type)
|
||||||
|
@ -1321,10 +1372,8 @@ public enum SSKProtoError: Error {
|
||||||
return proto.hasLabel
|
return proto.hasLabel
|
||||||
}
|
}
|
||||||
|
|
||||||
private init(proto: SignalServiceProtos_DataMessage.Contact.Email,
|
private init(proto: SignalServiceProtos_DataMessage.Contact.Email) {
|
||||||
value: String) {
|
|
||||||
self.proto = proto
|
self.proto = proto
|
||||||
self.value = value
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc
|
@objc
|
||||||
|
@ -1338,17 +1387,11 @@ public enum SSKProtoError: Error {
|
||||||
}
|
}
|
||||||
|
|
||||||
fileprivate class func parseProto(_ proto: SignalServiceProtos_DataMessage.Contact.Email) throws -> SSKProtoDataMessageContactEmail {
|
fileprivate class func parseProto(_ proto: SignalServiceProtos_DataMessage.Contact.Email) throws -> SSKProtoDataMessageContactEmail {
|
||||||
guard proto.hasValue else {
|
|
||||||
throw SSKProtoError.invalidProtobuf(description: "\(logTag) missing required field: value")
|
|
||||||
}
|
|
||||||
let value = proto.value
|
|
||||||
|
|
||||||
// MARK: - Begin Validation Logic for SSKProtoDataMessageContactEmail -
|
// MARK: - Begin Validation Logic for SSKProtoDataMessageContactEmail -
|
||||||
|
|
||||||
// MARK: - End Validation Logic for SSKProtoDataMessageContactEmail -
|
// MARK: - End Validation Logic for SSKProtoDataMessageContactEmail -
|
||||||
|
|
||||||
let result = SSKProtoDataMessageContactEmail(proto: proto,
|
let result = SSKProtoDataMessageContactEmail(proto: proto)
|
||||||
value: value)
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1573,6 +1616,9 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_DataMessage.Contact.Avatar
|
fileprivate let proto: SignalServiceProtos_DataMessage.Contact.Avatar
|
||||||
|
|
||||||
@objc public let avatar: SSKProtoAttachmentPointer?
|
@objc public let avatar: SSKProtoAttachmentPointer?
|
||||||
|
@objc public var hasAvatar: Bool {
|
||||||
|
return proto.hasAvatar
|
||||||
|
}
|
||||||
|
|
||||||
@objc public var isProfile: Bool {
|
@objc public var isProfile: Bool {
|
||||||
return proto.isProfile
|
return proto.isProfile
|
||||||
|
@ -1688,10 +1734,20 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_DataMessage.Contact
|
fileprivate let proto: SignalServiceProtos_DataMessage.Contact
|
||||||
|
|
||||||
@objc public let name: SSKProtoDataMessageContactName?
|
@objc public let name: SSKProtoDataMessageContactName?
|
||||||
|
@objc public var hasName: Bool {
|
||||||
|
return proto.hasName
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let number: [SSKProtoDataMessageContactPhone]
|
@objc public let number: [SSKProtoDataMessageContactPhone]
|
||||||
|
|
||||||
@objc public let email: [SSKProtoDataMessageContactEmail]
|
@objc public let email: [SSKProtoDataMessageContactEmail]
|
||||||
|
|
||||||
@objc public let address: [SSKProtoDataMessageContactPostalAddress]
|
@objc public let address: [SSKProtoDataMessageContactPostalAddress]
|
||||||
|
|
||||||
@objc public let avatar: SSKProtoDataMessageContactAvatar?
|
@objc public let avatar: SSKProtoDataMessageContactAvatar?
|
||||||
|
@objc public var hasAvatar: Bool {
|
||||||
|
return proto.hasAvatar
|
||||||
|
}
|
||||||
|
|
||||||
@objc public var organization: String? {
|
@objc public var organization: String? {
|
||||||
guard proto.hasOrganization else {
|
guard proto.hasOrganization else {
|
||||||
|
@ -1871,8 +1927,17 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_DataMessage
|
fileprivate let proto: SignalServiceProtos_DataMessage
|
||||||
|
|
||||||
@objc public let attachments: [SSKProtoAttachmentPointer]
|
@objc public let attachments: [SSKProtoAttachmentPointer]
|
||||||
|
|
||||||
@objc public let group: SSKProtoGroupContext?
|
@objc public let group: SSKProtoGroupContext?
|
||||||
|
@objc public var hasGroup: Bool {
|
||||||
|
return proto.hasGroup
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let quote: SSKProtoDataMessageQuote?
|
@objc public let quote: SSKProtoDataMessageQuote?
|
||||||
|
@objc public var hasQuote: Bool {
|
||||||
|
return proto.hasQuote
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let contact: [SSKProtoDataMessageContact]
|
@objc public let contact: [SSKProtoDataMessageContact]
|
||||||
|
|
||||||
@objc public var body: String? {
|
@objc public var body: String? {
|
||||||
|
@ -2287,6 +2352,9 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_SyncMessage.Sent
|
fileprivate let proto: SignalServiceProtos_SyncMessage.Sent
|
||||||
|
|
||||||
@objc public let message: SSKProtoDataMessage?
|
@objc public let message: SSKProtoDataMessage?
|
||||||
|
@objc public var hasMessage: Bool {
|
||||||
|
return proto.hasMessage
|
||||||
|
}
|
||||||
|
|
||||||
@objc public var destination: String? {
|
@objc public var destination: String? {
|
||||||
guard proto.hasDestination else {
|
guard proto.hasDestination else {
|
||||||
|
@ -2438,6 +2506,9 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_SyncMessage.Groups
|
fileprivate let proto: SignalServiceProtos_SyncMessage.Groups
|
||||||
|
|
||||||
@objc public let blob: SSKProtoAttachmentPointer?
|
@objc public let blob: SSKProtoAttachmentPointer?
|
||||||
|
@objc public var hasBlob: Bool {
|
||||||
|
return proto.hasBlob
|
||||||
|
}
|
||||||
|
|
||||||
private init(proto: SignalServiceProtos_SyncMessage.Groups,
|
private init(proto: SignalServiceProtos_SyncMessage.Groups,
|
||||||
blob: SSKProtoAttachmentPointer?) {
|
blob: SSKProtoAttachmentPointer?) {
|
||||||
|
@ -2650,6 +2721,7 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_SyncMessage.Read
|
fileprivate let proto: SignalServiceProtos_SyncMessage.Read
|
||||||
|
|
||||||
@objc public let sender: String
|
@objc public let sender: String
|
||||||
|
|
||||||
@objc public let timestamp: UInt64
|
@objc public let timestamp: UInt64
|
||||||
|
|
||||||
private init(proto: SignalServiceProtos_SyncMessage.Read,
|
private init(proto: SignalServiceProtos_SyncMessage.Read,
|
||||||
|
@ -2814,13 +2886,41 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_SyncMessage
|
fileprivate let proto: SignalServiceProtos_SyncMessage
|
||||||
|
|
||||||
@objc public let sent: SSKProtoSyncMessageSent?
|
@objc public let sent: SSKProtoSyncMessageSent?
|
||||||
|
@objc public var hasSent: Bool {
|
||||||
|
return proto.hasSent
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let contacts: SSKProtoSyncMessageContacts?
|
@objc public let contacts: SSKProtoSyncMessageContacts?
|
||||||
|
@objc public var hasContacts: Bool {
|
||||||
|
return proto.hasContacts
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let groups: SSKProtoSyncMessageGroups?
|
@objc public let groups: SSKProtoSyncMessageGroups?
|
||||||
|
@objc public var hasGroups: Bool {
|
||||||
|
return proto.hasGroups
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let request: SSKProtoSyncMessageRequest?
|
@objc public let request: SSKProtoSyncMessageRequest?
|
||||||
|
@objc public var hasRequest: Bool {
|
||||||
|
return proto.hasRequest
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let read: [SSKProtoSyncMessageRead]
|
@objc public let read: [SSKProtoSyncMessageRead]
|
||||||
|
|
||||||
@objc public let blocked: SSKProtoSyncMessageBlocked?
|
@objc public let blocked: SSKProtoSyncMessageBlocked?
|
||||||
|
@objc public var hasBlocked: Bool {
|
||||||
|
return proto.hasBlocked
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let verified: SSKProtoVerified?
|
@objc public let verified: SSKProtoVerified?
|
||||||
|
@objc public var hasVerified: Bool {
|
||||||
|
return proto.hasVerified
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let configuration: SSKProtoSyncMessageConfiguration?
|
@objc public let configuration: SSKProtoSyncMessageConfiguration?
|
||||||
|
@objc public var hasConfiguration: Bool {
|
||||||
|
return proto.hasConfiguration
|
||||||
|
}
|
||||||
|
|
||||||
@objc public var padding: Data? {
|
@objc public var padding: Data? {
|
||||||
guard proto.hasPadding else {
|
guard proto.hasPadding else {
|
||||||
|
@ -3192,8 +3292,13 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_GroupContext
|
fileprivate let proto: SignalServiceProtos_GroupContext
|
||||||
|
|
||||||
@objc public let id: Data
|
@objc public let id: Data
|
||||||
|
|
||||||
@objc public let type: SSKProtoGroupContextType
|
@objc public let type: SSKProtoGroupContextType
|
||||||
|
|
||||||
@objc public let avatar: SSKProtoAttachmentPointer?
|
@objc public let avatar: SSKProtoAttachmentPointer?
|
||||||
|
@objc public var hasAvatar: Bool {
|
||||||
|
return proto.hasAvatar
|
||||||
|
}
|
||||||
|
|
||||||
@objc public var name: String? {
|
@objc public var name: String? {
|
||||||
guard proto.hasName else {
|
guard proto.hasName else {
|
||||||
|
@ -3379,8 +3484,16 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_ContactDetails
|
fileprivate let proto: SignalServiceProtos_ContactDetails
|
||||||
|
|
||||||
@objc public let number: String
|
@objc public let number: String
|
||||||
|
|
||||||
@objc public let avatar: SSKProtoContactDetailsAvatar?
|
@objc public let avatar: SSKProtoContactDetailsAvatar?
|
||||||
|
@objc public var hasAvatar: Bool {
|
||||||
|
return proto.hasAvatar
|
||||||
|
}
|
||||||
|
|
||||||
@objc public let verified: SSKProtoVerified?
|
@objc public let verified: SSKProtoVerified?
|
||||||
|
@objc public var hasVerified: Bool {
|
||||||
|
return proto.hasVerified
|
||||||
|
}
|
||||||
|
|
||||||
@objc public var name: String? {
|
@objc public var name: String? {
|
||||||
guard proto.hasName else {
|
guard proto.hasName else {
|
||||||
|
@ -3602,7 +3715,11 @@ public enum SSKProtoError: Error {
|
||||||
fileprivate let proto: SignalServiceProtos_GroupDetails
|
fileprivate let proto: SignalServiceProtos_GroupDetails
|
||||||
|
|
||||||
@objc public let id: Data
|
@objc public let id: Data
|
||||||
|
|
||||||
@objc public let avatar: SSKProtoGroupDetailsAvatar?
|
@objc public let avatar: SSKProtoGroupDetailsAvatar?
|
||||||
|
@objc public var hasAvatar: Bool {
|
||||||
|
return proto.hasAvatar
|
||||||
|
}
|
||||||
|
|
||||||
@objc public var name: String? {
|
@objc public var name: String? {
|
||||||
guard proto.hasName else {
|
guard proto.hasName else {
|
||||||
|
|
|
@ -784,7 +784,6 @@ struct SignalServiceProtos_DataMessage {
|
||||||
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
|
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
|
||||||
// methods supported on all messages.
|
// methods supported on all messages.
|
||||||
|
|
||||||
/// @required
|
|
||||||
var value: String {
|
var value: String {
|
||||||
get {return _value ?? String()}
|
get {return _value ?? String()}
|
||||||
set {_value = newValue}
|
set {_value = newValue}
|
||||||
|
@ -858,7 +857,6 @@ struct SignalServiceProtos_DataMessage {
|
||||||
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
|
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
|
||||||
// methods supported on all messages.
|
// methods supported on all messages.
|
||||||
|
|
||||||
/// @required
|
|
||||||
var value: String {
|
var value: String {
|
||||||
get {return _value ?? String()}
|
get {return _value ?? String()}
|
||||||
set {_value = newValue}
|
set {_value = newValue}
|
||||||
|
|
Loading…
Reference in New Issue