|
|
|
|
@ -21,6 +21,8 @@
|
|
|
|
|
#import <SAMKeychain/SAMKeychain.h>
|
|
|
|
|
#import <YapDatabase/YapDatabaseRelationship.h>
|
|
|
|
|
|
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
|
|
|
|
|
|
NSString *const TSUIDatabaseConnectionDidUpdateNotification = @"TSUIDatabaseConnectionDidUpdateNotification";
|
|
|
|
|
|
|
|
|
|
NSString *const TSStorageManagerExceptionNameDatabasePasswordInaccessible = @"TSStorageManagerExceptionNameDatabasePasswordInaccessible";
|
|
|
|
|
@ -35,7 +37,7 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
|
|
|
|
|
|
|
|
|
|
@interface TSStorageManager ()
|
|
|
|
|
|
|
|
|
|
@property YapDatabase *database;
|
|
|
|
|
@property (nullable, atomic) YapDatabase *database;
|
|
|
|
|
|
|
|
|
|
@end
|
|
|
|
|
|
|
|
|
|
@ -62,7 +64,7 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
|
|
|
|
|
*/
|
|
|
|
|
@implementation OWSUnknownObject
|
|
|
|
|
|
|
|
|
|
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
|
|
|
|
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder
|
|
|
|
|
{
|
|
|
|
|
return nil;
|
|
|
|
|
}
|
|
|
|
|
@ -240,7 +242,8 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
- (YapDatabaseConnection *)newDatabaseConnection {
|
|
|
|
|
- (nullable YapDatabaseConnection *)newDatabaseConnection
|
|
|
|
|
{
|
|
|
|
|
return self.database.newConnection;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -400,7 +403,8 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
|
|
|
|
|
return object;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
- (NSDictionary *)dictionaryForKey:(NSString *)key inCollection:(NSString *)collection {
|
|
|
|
|
- (nullable NSDictionary *)dictionaryForKey:(NSString *)key inCollection:(NSString *)collection
|
|
|
|
|
{
|
|
|
|
|
__block NSDictionary *object;
|
|
|
|
|
|
|
|
|
|
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
|
|
|
|
|
@ -410,7 +414,8 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
|
|
|
|
|
return object;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
- (NSString *)stringForKey:(NSString *)key inCollection:(NSString *)collection {
|
|
|
|
|
- (nullable NSString *)stringForKey:(NSString *)key inCollection:(NSString *)collection
|
|
|
|
|
{
|
|
|
|
|
NSString *string = [self objectForKey:key inCollection:collection];
|
|
|
|
|
|
|
|
|
|
return string;
|
|
|
|
|
@ -422,24 +427,28 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
|
|
|
|
|
return [boolNum boolValue];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
- (NSData *)dataForKey:(NSString *)key inCollection:(NSString *)collection {
|
|
|
|
|
- (nullable NSData *)dataForKey:(NSString *)key inCollection:(NSString *)collection
|
|
|
|
|
{
|
|
|
|
|
NSData *data = [self objectForKey:key inCollection:collection];
|
|
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
- (ECKeyPair *)keyPairForKey:(NSString *)key inCollection:(NSString *)collection {
|
|
|
|
|
- (nullable ECKeyPair *)keyPairForKey:(NSString *)key inCollection:(NSString *)collection
|
|
|
|
|
{
|
|
|
|
|
ECKeyPair *keyPair = [self objectForKey:key inCollection:collection];
|
|
|
|
|
|
|
|
|
|
return keyPair;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
- (PreKeyRecord *)preKeyRecordForKey:(NSString *)key inCollection:(NSString *)collection {
|
|
|
|
|
- (nullable PreKeyRecord *)preKeyRecordForKey:(NSString *)key inCollection:(NSString *)collection
|
|
|
|
|
{
|
|
|
|
|
PreKeyRecord *preKeyRecord = [self objectForKey:key inCollection:collection];
|
|
|
|
|
|
|
|
|
|
return preKeyRecord;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
- (SignedPreKeyRecord *)signedPreKeyRecordForKey:(NSString *)key inCollection:(NSString *)collection {
|
|
|
|
|
- (nullable SignedPreKeyRecord *)signedPreKeyRecordForKey:(NSString *)key inCollection:(NSString *)collection
|
|
|
|
|
{
|
|
|
|
|
SignedPreKeyRecord *preKeyRecord = [self objectForKey:key inCollection:collection];
|
|
|
|
|
|
|
|
|
|
return preKeyRecord;
|
|
|
|
|
@ -476,7 +485,7 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
- (void)setDate:(nonnull NSDate *)value forKey:(NSString *)key inCollection:(NSString *)collection
|
|
|
|
|
- (void)setDate:(NSDate *)value forKey:(NSString *)key inCollection:(NSString *)collection
|
|
|
|
|
{
|
|
|
|
|
[self setObject:@(value.timeIntervalSince1970) forKey:key inCollection:collection];
|
|
|
|
|
}
|
|
|
|
|
@ -530,3 +539,5 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@end
|
|
|
|
|
|
|
|
|
|
NS_ASSUME_NONNULL_END
|
|
|
|
|
|