session-ios/Signal/src/ViewControllers/DebugUI/DebugUISyncMessages.m
Niels Andriesse aeb3cecf55 WIP
2019-05-03 07:58:48 +10:00

140 lines
4.2 KiB
Objective-C

//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "DebugUISyncMessages.h"
#import "DebugUIContacts.h"
#import "OWSTableViewController.h"
#import "Session-Swift.h"
#import "ThreadUtil.h"
#import <AxolotlKit/PreKeyBundle.h>
#import <PromiseKit/AnyPromise.h>
#import <SignalCoreKit/Randomness.h>
#import <SignalMessaging/Environment.h>
#import <SignalServiceKit/OWSBatchMessageProcessor.h>
#import <SignalServiceKit/OWSBlockingManager.h>
#import <SignalServiceKit/OWSDisappearingConfigurationUpdateInfoMessage.h>
#import <SignalServiceKit/OWSDisappearingMessagesConfiguration.h>
#import <SignalServiceKit/OWSPrimaryStorage+SessionStore.h>
#import <SignalServiceKit/OWSPrimaryStorage.h>
#import <SignalServiceKit/OWSReadReceiptManager.h>
#import <SignalServiceKit/OWSSyncGroupsMessage.h>
#import <SignalServiceKit/OWSSyncGroupsRequestMessage.h>
#import <SignalServiceKit/OWSVerificationStateChangeMessage.h>
#import <SignalServiceKit/SignalServiceKit-Swift.h>
#import <SignalServiceKit/TSCall.h>
#import <SignalServiceKit/TSDatabaseView.h>
#import <SignalServiceKit/TSIncomingMessage.h>
#import <SignalServiceKit/TSInvalidIdentityKeyReceivingErrorMessage.h>
#import <SignalServiceKit/TSThread.h>
NS_ASSUME_NONNULL_BEGIN
@implementation DebugUISyncMessages
#pragma mark - Factory Methods
- (NSString *)name
{
return @"Sync Messages";
}
- (nullable OWSTableSection *)sectionForThread:(nullable TSThread *)thread
{
NSArray<OWSTableItem *> *items = @[
[OWSTableItem itemWithTitle:@"Send Contacts Sync Message"
actionBlock:^{
[DebugUISyncMessages sendContactsSyncMessage];
}],
[OWSTableItem itemWithTitle:@"Send Groups Sync Message"
actionBlock:^{
[DebugUISyncMessages sendGroupSyncMessage];
}],
[OWSTableItem itemWithTitle:@"Send Blocklist Sync Message"
actionBlock:^{
[DebugUISyncMessages sendBlockListSyncMessage];
}],
[OWSTableItem itemWithTitle:@"Send Configuration Sync Message"
actionBlock:^{
[DebugUISyncMessages sendConfigurationSyncMessage];
}],
];
return [OWSTableSection sectionWithTitle:self.name items:items];
}
+ (SSKMessageSenderJobQueue *)messageSenderJobQueue
{
return SSKEnvironment.shared.messageSenderJobQueue;
}
+ (OWSContactsManager *)contactsManager
{
return Environment.shared.contactsManager;
}
+ (OWSIdentityManager *)identityManager
{
return [OWSIdentityManager sharedManager];
}
+ (OWSBlockingManager *)blockingManager
{
return [OWSBlockingManager sharedManager];
}
+ (OWSProfileManager *)profileManager
{
return [OWSProfileManager sharedManager];
}
+ (YapDatabaseConnection *)dbConnection
{
return [OWSPrimaryStorage.sharedManager newDatabaseConnection];
}
+ (id<OWSSyncManagerProtocol>)syncManager
{
OWSAssertDebug(SSKEnvironment.shared.syncManager);
return SSKEnvironment.shared.syncManager;
}
#pragma mark -
+ (void)sendContactsSyncMessage
{
[[self.syncManager syncAllContacts] retainUntilComplete];
}
+ (void)sendGroupSyncMessage
{
OWSSyncGroupsMessage *syncGroupsMessage = [[OWSSyncGroupsMessage alloc] init];
__block DataSource *dataSource;
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
dataSource = [DataSourceValue
dataSourceWithSyncMessageData:[syncGroupsMessage buildPlainTextAttachmentDataWithTransaction:transaction]];
}];
[self.messageSenderJobQueue addMediaMessage:syncGroupsMessage
dataSource:dataSource
contentType:OWSMimeTypeApplicationOctetStream
sourceFilename:nil
caption:nil
albumMessageId:nil
isTemporaryAttachment:YES];
}
+ (void)sendBlockListSyncMessage
{
[self.blockingManager syncBlockList];
}
+ (void)sendConfigurationSyncMessage
{
[SSKEnvironment.shared.syncManager sendConfigurationSyncMessage];
}
@end
NS_ASSUME_NONNULL_END