Adapting to changes to SubProtocol and InboxView

pull/1/head
Frederic Jacobs 10 years ago
parent 121ef0439c
commit 0c88202f7b

@ -84,9 +84,7 @@
[[TSStorageManager sharedManager] setupDatabase];
[self performUpdateCheck];
//self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
[self prepareScreenshotProtection];
self.notificationTracker = [NotificationTracker notificationTracker];

@ -84,7 +84,7 @@ static NSString *const DEFAULTS_KEY_DATE = @"DefaultsKeyDate";
- (BOOL)isTextSecureContact{
__block BOOL isRecipient = NO;
[[TSStorageManager sharedManager].databaseConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
[[TSStorageManager sharedManager].dbConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
for (PhoneNumber *number in self.parsedPhoneNumbers) {
if ([TSRecipient recipientWithTextSecureIdentifier:number.toE164 withTransaction:transaction]) {
isRecipient = YES;

@ -45,4 +45,6 @@ typedef void(^ABReloadRequestCompletionBlock)(NSArray *contacts);
- (NSArray*)allContacts;
- (NSArray*)textSecureContacts;
- (NSString*)nameStringForPhoneIdentifier:(NSString*)identifier;
@end

@ -425,4 +425,15 @@ void onAddressBookChanged(ABAddressBookRef notifyAddressBook, CFDictionaryRef in
return phoneNumber != nil && [directory containsPhoneNumber:phoneNumber];
}
- (NSString*)nameStringForPhoneIdentifier:(NSString*)identifier{
for (Contact *contact in self.textSecureContacts) {
for (PhoneNumber *phoneNumber in contact.parsedPhoneNumbers) {
if ([phoneNumber.toE164 isEqualToString:identifier]) {
return contact.fullName;
}
}
}
return nil;
}
@end

@ -134,7 +134,7 @@
}
}
[[TSStorageManager sharedManager].databaseConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[[TSStorageManager sharedManager].dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
for (NSString *identifier in tsIdentifiers) {
TSRecipient *recipient = [TSRecipient recipientWithTextSecureIdentifier:identifier withTransaction:transaction];
if (!recipient) {

@ -73,7 +73,7 @@
[[TSNetworkManager sharedManager] queueAuthenticatedRequest:[[TSRegisterForPushRequest alloc] initWithPushIdentifier:stringToken] success:^(NSURLSessionDataTask *task, id responseObject) {
success();
} failure:^(NSURLSessionDataTask *task, NSError *error) {
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"NSError: %@", error.debugDescription);
TSRegistrationFailure failureType = kTSRegistrationFailureNetwork;

@ -19,7 +19,6 @@ NSString *TSThreadGroup = @"TSThreadGroup";
NSString *TSThreadDatabaseViewExtensionName = @"TSThreadDatabaseViewExtensionName";
NSString *TSMessageDatabaseViewExtensionName = @"TSMessageDatabaseViewExtensionName";
NSString *TSRecipientsDatabaseViewExtensionName = @"TSRecipientsDatabaseViewExtensionName";
@implementation TSDatabaseView

@ -40,26 +40,60 @@ static NSString * keychainDBPassAccount = @"TSDatabasePass";
return sharedMyManager;
}
- (void)setupDatabase {
- (instancetype)init {
self = [super init];
YapDatabaseOptions *options = [[YapDatabaseOptions alloc] init];
options.corruptAction = YapDatabaseCorruptAction_Fail;
options.passphraseBlock = ^{
return [self databasePassword];
};
self. database = [[YapDatabase alloc] initWithPath:[self dbPath]
objectSerializer:NULL
objectDeserializer:NULL
metadataSerializer:NULL
metadataDeserializer:NULL
objectSanitizer:NULL
metadataSanitizer:NULL
options:options];
self.dbConnection = self.databaseConnection;
_database = [[YapDatabase alloc] initWithPath:[self dbPath]
objectSerializer:NULL
objectDeserializer:NULL
metadataSerializer:NULL
metadataDeserializer:NULL
objectSanitizer:NULL
metadataSanitizer:NULL
options:options];
_dbConnection = self.newDatabaseConnection;
return self;
}
- (void)setupDatabase {
[TSDatabaseView registerThreadDatabaseView];
[TSDatabaseView registerBuddyConversationDatabaseView];
}
/**
* Protects the preference and logs file with disk encryption and prevents them to leak to iCloud.
*/
- (void)protectDatabaseFile{
NSDictionary *attrs = @{NSFileProtectionKey: NSFileProtectionCompleteUntilFirstUserAuthentication};
NSError *error;
[NSFileManager.defaultManager setAttributes:attrs ofItemAtPath:[self dbPath] error:&error];
[[NSURL fileURLWithPath:[self dbPath]] setResourceValue:@YES
forKey:NSURLIsExcludedFromBackupKey
error:&error];
if (error) {
DDLogError(@"Error while removing log files from backup: %@", error.description);
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:NSLocalizedString(@"WARNING", @"")
message:NSLocalizedString(@"DISABLING_BACKUP_FAILED", @"")
delegate:nil
cancelButtonTitle:NSLocalizedString(@"OK", @"")
otherButtonTitles:nil];
[alert show];
return;
}
}
- (YapDatabaseConnection *)newDatabaseConnection {
return self.database.newConnection;
}

Loading…
Cancel
Save