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

62 lines
1.8 KiB
Objective-C

//
// Copyright 2019 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
#import "OWSSyncFetchLatestMessage.h"
#import <SignalServiceKit/SignalServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN
@interface OWSSyncFetchLatestMessage ()
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_UNAVAILABLE;
@property (nonatomic, readonly) OWSSyncFetchType fetchType;
@end
@implementation OWSSyncFetchLatestMessage
- (instancetype)initWithThread:(TSThread *)thread
fetchType:(OWSSyncFetchType)fetchType
transaction:(SDSAnyReadTransaction *)transaction
{
self = [super initWithThread:thread transaction:transaction];
_fetchType = fetchType;
return self;
}
- (SSKProtoSyncMessageFetchLatestType)protoFetchType
{
switch (self.fetchType) {
case OWSSyncFetchType_Unknown:
return SSKProtoSyncMessageFetchLatestTypeUnknown;
case OWSSyncFetchType_LocalProfile:
return SSKProtoSyncMessageFetchLatestTypeLocalProfile;
case OWSSyncFetchType_StorageManifest:
return SSKProtoSyncMessageFetchLatestTypeStorageManifest;
case OWSSyncFetchType_SubscriptionStatus:
return SSKProtoSyncMessageFetchLatestTypeSubscriptionStatus;
}
}
- (nullable SSKProtoSyncMessageBuilder *)syncMessageBuilderWithTransaction:(SDSAnyReadTransaction *)transaction
{
SSKProtoSyncMessageFetchLatestBuilder *fetchLatestBuilder = [SSKProtoSyncMessageFetchLatest builder];
fetchLatestBuilder.type = self.protoFetchType;
SSKProtoSyncMessageBuilder *syncMessageBuilder = [SSKProtoSyncMessage builder];
syncMessageBuilder.fetchLatest = [fetchLatestBuilder buildInfallibly];
return syncMessageBuilder;
}
- (SealedSenderContentHint)contentHint
{
return SealedSenderContentHintImplicit;
}
@end
NS_ASSUME_NONNULL_END