// // 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 #import #import #import #import #import #import #import #import #import #import #import #import #import #import #import #import #import #import #import NS_ASSUME_NONNULL_BEGIN @implementation DebugUISyncMessages #pragma mark - Factory Methods - (NSString *)name { return @"Sync Messages"; } - (nullable OWSTableSection *)sectionForThread:(nullable TSThread *)thread { NSArray *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)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