TM-SGNL-iOS/SignalServiceKit/Messages/Reactions/OWSOutgoingReactionMessage.m
TeleMessage developers dde0620daf initial commit
2025-05-03 12:28:28 -07:00

72 lines
2.3 KiB
Objective-C

//
// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
#import "OWSOutgoingReactionMessage.h"
#import <SignalServiceKit/NSDate+OWS.h>
#import <SignalServiceKit/SignalServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN
@implementation OWSOutgoingReactionMessage
- (instancetype)initWithThread:(TSThread *)thread
message:(TSMessage *)message
emoji:(NSString *)emoji
isRemoving:(BOOL)isRemoving
expiresInSeconds:(uint32_t)expiresInSeconds
expireTimerVersion:(nullable NSNumber *)expireTimerVersion
transaction:(SDSAnyReadTransaction *)transaction
{
OWSAssertDebug([thread.uniqueId isEqualToString:message.uniqueThreadId]);
OWSAssertDebug(emoji.isSingleEmoji);
TSOutgoingMessageBuilder *messageBuilder = [TSOutgoingMessageBuilder outgoingMessageBuilderWithThread:thread];
messageBuilder.expiresInSeconds = expiresInSeconds;
messageBuilder.expireTimerVersion = expireTimerVersion;
self = [super initOutgoingMessageWithBuilder:messageBuilder
additionalRecipients:@[]
explicitRecipients:@[]
skippedRecipients:@[]
transaction:transaction];
if (!self) {
return self;
}
_messageUniqueId = message.uniqueId;
_emoji = emoji;
_isRemoving = isRemoving;
return self;
}
- (BOOL)shouldBeSaved
{
return NO;
}
- (nullable SSKProtoDataMessageBuilder *)dataMessageBuilderWithThread:(TSThread *)thread
transaction:(SDSAnyReadTransaction *)transaction
{
SSKProtoDataMessageReaction *_Nullable reactionProto = [self buildDataMessageReactionProtoWithTx:transaction];
if (!reactionProto) {
return nil;
}
SSKProtoDataMessageBuilder *builder = [super dataMessageBuilderWithThread:thread transaction:transaction];
[builder setTimestamp:self.timestamp];
[builder setReaction:reactionProto];
[builder setRequiredProtocolVersion:SSKProtoDataMessageProtocolVersionReactions];
return builder;
}
- (NSSet<NSString *> *)relatedUniqueIds
{
return [[super relatedUniqueIds] setByAddingObjectsFromArray:@[ self.messageUniqueId ]];
}
@end
NS_ASSUME_NONNULL_END