// // Copyright (c) 2018 Open Whisper Systems. All rights reserved. // #import "OWSReadReceiptsForLinkedDevicesMessage.h" #import "OWSLinkedDeviceReadReceipt.h" #import NS_ASSUME_NONNULL_BEGIN @interface OWSReadReceiptsForLinkedDevicesMessage () @property (nonatomic, readonly) NSArray *readReceipts; @end @implementation OWSReadReceiptsForLinkedDevicesMessage - (instancetype)initWithReadReceipts:(NSArray *)readReceipts { self = [super init]; if (!self) { return self; } _readReceipts = [readReceipts copy]; return self; } - (nullable instancetype)initWithCoder:(NSCoder *)coder { return [super initWithCoder:coder]; } - (nullable SSKProtoSyncMessageBuilder *)syncMessageBuilder { SSKProtoSyncMessageBuilder *syncMessageBuilder = [SSKProtoSyncMessageBuilder new]; for (OWSLinkedDeviceReadReceipt *readReceipt in self.readReceipts) { SSKProtoSyncMessageReadBuilder *readProtoBuilder = [SSKProtoSyncMessageReadBuilder new]; [readProtoBuilder setSender:readReceipt.senderId]; [readProtoBuilder setTimestamp:readReceipt.messageIdTimestamp]; NSError *error; SSKProtoSyncMessageRead *_Nullable readProto = [readProtoBuilder buildAndReturnError:&error]; if (error || !readProto) { OWSFail(@"%@ could not build protobuf: %@", self.logTag, error); return nil; } [syncMessageBuilder addRead:readProto]; } return syncMessageBuilder; } @end NS_ASSUME_NONNULL_END