pull/41/head
Niels Andriesse 6 years ago
parent 6056575cdf
commit 06dba7ddd9

@ -56,13 +56,6 @@ static NSString *const kInitialViewControllerIdentifier = @"UserInitialViewContr
static NSString *const kURLSchemeSGNLKey = @"sgnl"; static NSString *const kURLSchemeSGNLKey = @"sgnl";
static NSString *const kURLHostVerifyPrefix = @"verify"; static NSString *const kURLHostVerifyPrefix = @"verify";
static NSString *const kChatID = @"PublicChatID";
static NSString *const kChatType = @"PublicChatType";
static NSString *const kChatServerURL = @"PublicChatServerURL";
static NSString *const kChatName = @"PublicChatName";
static NSString *const kChatClosable = @"PublicChatClosable";
static NSString *const kChatChannelID = @"PublicChatChannelID";
static NSTimeInterval launchStartedAt; static NSTimeInterval launchStartedAt;
@interface AppDelegate () <UNUserNotificationCenterDelegate> @interface AppDelegate () <UNUserNotificationCenterDelegate>
@ -1492,7 +1485,7 @@ static NSTimeInterval launchStartedAt;
#pragma mark - Loki #pragma mark - Loki
- (NSArray *)publicChats - (NSArray *)groupChats
{ {
return @[ return @[
[[LKGroupChat alloc] initWithKindAsString:@"publicChat" id:@(LKGroupChatAPI.publicChatID).stringValue server:LKGroupChatAPI.publicChatServer displayName:NSLocalizedString(@"Loki Public Chat", @"") isDeletable:true], [[LKGroupChat alloc] initWithKindAsString:@"publicChat" id:@(LKGroupChatAPI.publicChatID).stringValue server:LKGroupChatAPI.publicChatServer displayName:NSLocalizedString(@"Loki Public Chat", @"") isDeletable:true],
@ -1501,18 +1494,16 @@ static NSTimeInterval launchStartedAt;
]; ];
} }
- (void)setupPublicChatGroupsIfNeeded - (void)setUpGroupChatsIfNeeded
{ {
NSArray *chats = [self publicChats]; NSArray *groupChats = self.groupChats;
NSString *ourPublicKey = OWSIdentityManager.sharedManager.identityKeyPair.hexEncodedPublicKey; NSString *userHexEncodedPublicKey = OWSIdentityManager.sharedManager.identityKeyPair.hexEncodedPublicKey;
for (LKGroupChat *chat in chats) { for (LKGroupChat *chat in groupChats) {
NSString *setupKey = [@"setup-" stringByAppendingString:chat.id]; NSString *userDefaultsKey = [@"isGroupChatSetUp." stringByAppendingString:chat.id];
if (chat.isDeletable) { if (chat.isDeletable) {
BOOL isChatSetup = [NSUserDefaults.standardUserDefaults boolForKey:setupKey]; BOOL isChatSetUp = [NSUserDefaults.standardUserDefaults boolForKey:setupKey];
if (isChatSetup) { continue; } if (isChatSetUp) { continue; }
} }
// Create the group threads
TSGroupModel *group = [[TSGroupModel alloc] initWithTitle:chat.displayName memberIds:@[ ourPublicKey, chat.server ] image:nil groupId:[chat.id dataUsingEncoding:NSUTF8StringEncoding]]; TSGroupModel *group = [[TSGroupModel alloc] initWithTitle:chat.displayName memberIds:@[ ourPublicKey, chat.server ] image:nil groupId:[chat.id dataUsingEncoding:NSUTF8StringEncoding]];
__block TSGroupThread *thread; __block TSGroupThread *thread;
[OWSPrimaryStorage.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { [OWSPrimaryStorage.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
@ -1525,27 +1516,17 @@ static NSTimeInterval launchStartedAt;
NSDate *date = [calendar dateByAddingComponents:dateComponents toDate:[NSDate new] options:0]; NSDate *date = [calendar dateByAddingComponents:dateComponents toDate:[NSDate new] options:0];
[thread updateWithMutedUntilDate:date transaction:transaction]; [thread updateWithMutedUntilDate:date transaction:transaction];
}]; }];
[OWSProfileManager.sharedManager addThreadToProfileWhitelist:thread]; [OWSProfileManager.sharedManager addThreadToProfileWhitelist:thread];
if (chat.isDeletable) { if (chat.isDeletable) {
[NSUserDefaults.standardUserDefaults setBool:YES forKey:setupKey]; [NSUserDefaults.standardUserDefaults setBool:YES forKey:userDefaultsKey];
}
} }
} }
- (void)setUpPublicChatIfNeeded
{
static dispatch_once_t groupChatSetup;
dispatch_once(&groupChatSetup, ^{
[self setupPublicChatGroupsIfNeeded];
});
[self setupPublicChatPollersIfNeeded];
} }
- (void)setupPublicChatPollersIfNeeded - (void)setUpGroupChatPollerIfNeeded
{ {
if (self.lokiPublicChatPoller == nil) { if (self.lokiGroupChatPoller == nil) {
NSArray *publicChats = [[self publicChats] filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary* bindings) { NSArray *groupChats = [self.groupChats filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary* bindings) {
LKGroupChat *group = (LKGroupChat *)object; LKGroupChat *group = (LKGroupChat *)object;
return group.isPublicChat; return group.isPublicChat;
}]]; }]];

Loading…
Cancel
Save