diff --git a/src/Storage/TSStorageManager.h b/src/Storage/TSStorageManager.h index a0c9be407..3616cd43b 100644 --- a/src/Storage/TSStorageManager.h +++ b/src/Storage/TSStorageManager.h @@ -12,6 +12,8 @@ @class SignedPreKeyRecord; @class TSPrivacyPreferences; +NS_ASSUME_NONNULL_BEGIN + extern NSString *const TSUIDatabaseConnectionDidUpdateNotification; @interface TSStorageManager : NSObject @@ -32,8 +34,8 @@ extern NSString *const TSUIDatabaseConnectionDidUpdateNotification; - (void)deleteThreadsAndMessages; - (void)resetSignalStorage; -- (YapDatabase *)database; -- (YapDatabaseConnection *)newDatabaseConnection; +- (nullable YapDatabase *)database; +- (nullable YapDatabaseConnection *)newDatabaseConnection; - (void)setObject:(id)object forKey:(NSString *)key inCollection:(NSString *)collection; - (void)removeObjectForKey:(NSString *)string inCollection:(NSString *)collection; @@ -44,16 +46,18 @@ extern NSString *const TSUIDatabaseConnectionDidUpdateNotification; - (id)objectForKey:(NSString *)key inCollection:(NSString *)collection; - (int)incrementIntForKey:(NSString *)key inCollection:(NSString *)collection; - (nullable NSDate *)dateForKey:(NSString *)key inCollection:(NSString *)collection; -- (void)setDate:(nonnull NSDate *)value forKey:(NSString *)key inCollection:(NSString *)collection; -- (NSDictionary *)dictionaryForKey:(NSString *)key inCollection:(NSString *)collection; -- (NSString *)stringForKey:(NSString *)key inCollection:(NSString *)collection; -- (NSData *)dataForKey:(NSString *)key inCollection:(NSString *)collection; -- (ECKeyPair *)keyPairForKey:(NSString *)key inCollection:(NSString *)collection; -- (PreKeyRecord *)preKeyRecordForKey:(NSString *)key inCollection:(NSString *)collection; -- (SignedPreKeyRecord *)signedPreKeyRecordForKey:(NSString *)key inCollection:(NSString *)collection; +- (void)setDate:(NSDate *)value forKey:(NSString *)key inCollection:(NSString *)collection; +- (nullable NSDictionary *)dictionaryForKey:(NSString *)key inCollection:(NSString *)collection; +- (nullable NSString *)stringForKey:(NSString *)key inCollection:(NSString *)collection; +- (nullable NSData *)dataForKey:(NSString *)key inCollection:(NSString *)collection; +- (nullable ECKeyPair *)keyPairForKey:(NSString *)key inCollection:(NSString *)collection; +- (nullable PreKeyRecord *)preKeyRecordForKey:(NSString *)key inCollection:(NSString *)collection; +- (nullable SignedPreKeyRecord *)signedPreKeyRecordForKey:(NSString *)key inCollection:(NSString *)collection; - (void)purgeCollection:(NSString *)collection; -@property (nonatomic, readonly) YapDatabaseConnection *dbConnection; +@property (nullable, nonatomic, readonly) YapDatabaseConnection *dbConnection; @property (nonatomic, readonly) TSPrivacyPreferences *privacyPreferences; @end + +NS_ASSUME_NONNULL_END diff --git a/src/Storage/TSStorageManager.m b/src/Storage/TSStorageManager.m index ace86f0a2..3393ae393 100644 --- a/src/Storage/TSStorageManager.m +++ b/src/Storage/TSStorageManager.m @@ -21,6 +21,8 @@ #import #import +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