Clean up ahead of PR.

pull/1/head
Matthew Chen 7 years ago
parent 70926d7f10
commit 085f8a6f64

@ -14,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
- (BOOL)areAsyncRegistrationsComplete; - (BOOL)areAsyncRegistrationsComplete;
- (BOOL)areSyncRegistrationsComplete; - (BOOL)areSyncRegistrationsComplete;
- (NSString *)dbPath; - (NSString *)databaseFilePath;
- (void)resetStorage; - (void)resetStorage;

@ -6,6 +6,7 @@
#import "AppContext.h" #import "AppContext.h"
#import "NSData+Base64.h" #import "NSData+Base64.h"
#import "NSNotificationCenter+OWS.h" #import "NSNotificationCenter+OWS.h"
#import "OWSFileSystem.h"
#import "OWSStorage+Subclass.h" #import "OWSStorage+Subclass.h"
#import "TSAttachmentStream.h" #import "TSAttachmentStream.h"
#import "TSStorageManager.h" #import "TSStorageManager.h"
@ -255,9 +256,8 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
// and behave like a clean install. // and behave like a clean install.
OWSProdCritical([OWSAnalyticsEvents storageErrorCouldNotLoadDatabase]); OWSProdCritical([OWSAnalyticsEvents storageErrorCouldNotLoadDatabase]);
// Try to reset app by deleting database. // Try to reset app by deleting all databases.
// Disabled resetting storage until we have better data on why this happens. [OWSStorage deleteDatabaseFiles];
// [self resetAllStorage];
if (![self tryToLoadDatabase]) { if (![self tryToLoadDatabase]) {
OWSProdCritical([OWSAnalyticsEvents storageErrorCouldNotLoadDatabaseSecondAttempt]); OWSProdCritical([OWSAnalyticsEvents storageErrorCouldNotLoadDatabaseSecondAttempt]);
@ -366,7 +366,7 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
}; };
options.enableMultiProcessSupport = YES; options.enableMultiProcessSupport = YES;
OWSDatabase *database = [[OWSDatabase alloc] initWithPath:[self dbPath] OWSDatabase *database = [[OWSDatabase alloc] initWithPath:[self databaseFilePath]
serializer:nil serializer:nil
deserializer:[[self class] logOnFailureDeserializer] deserializer:[[self class] logOnFailureDeserializer]
options:options options:options
@ -429,13 +429,14 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
#pragma mark - Password #pragma mark - Password
+ (void)deleteDatabaseFiles
{
[OWSFileSystem deleteFile:[TSStorageManager databaseFilePath]];
}
- (void)deleteDatabaseFile - (void)deleteDatabaseFile
{ {
NSError *error; [OWSFileSystem deleteFile:[self databaseFilePath]];
[[NSFileManager defaultManager] removeItemAtPath:[self dbPath] error:&error];
if (error) {
DDLogError(@"Failed to delete database: %@", error.description);
}
} }
- (void)resetStorage - (void)resetStorage
@ -451,6 +452,9 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
[storage resetStorage]; [storage resetStorage];
} }
// This might be redundant but in the spirit of thoroughness...
[self deleteDatabaseFiles];
[self deletePasswordFromKeychain]; [self deletePasswordFromKeychain];
if (CurrentAppContext().isMainApp) { if (CurrentAppContext().isMainApp) {
@ -462,7 +466,7 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
#pragma mark - Password #pragma mark - Password
- (NSString *)dbPath - (NSString *)databaseFilePath
{ {
OWS_ABSTRACT_METHOD(); OWS_ABSTRACT_METHOD();
@ -525,7 +529,7 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
// or the keychain has become corrupt. Either way, we want to get back to a // or the keychain has become corrupt. Either way, we want to get back to a
// "known good state" and behave like a new install. // "known good state" and behave like a new install.
BOOL shouldHavePassword = [NSFileManager.defaultManager fileExistsAtPath:[self dbPath]]; BOOL shouldHavePassword = [NSFileManager.defaultManager fileExistsAtPath:[self databaseFilePath]];
if (shouldHavePassword) { if (shouldHavePassword) {
OWSProdCritical([OWSAnalyticsEvents storageErrorCouldNotLoadDatabaseSecondAttempt]); OWSProdCritical([OWSAnalyticsEvents storageErrorCouldNotLoadDatabaseSecondAttempt]);
} }

@ -19,6 +19,8 @@ NS_ASSUME_NONNULL_BEGIN
+ (void)migrateToSharedData; + (void)migrateToSharedData;
+ (NSString *)databaseFilePath;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

@ -213,11 +213,16 @@ NSString *const TSStorageManagerExceptionName_CouldNotCreateDatabaseDirectory
exceptionName:TSStorageManagerExceptionName_CouldNotMoveDatabaseFile]; exceptionName:TSStorageManagerExceptionName_CouldNotMoveDatabaseFile];
} }
- (NSString *)dbPath + (NSString *)databaseFilePath
{ {
DDLogVerbose(@"databasePath: %@", TSStorageManager.sharedDataDatabaseFilePath); DDLogVerbose(@"databasePath: %@", TSStorageManager.sharedDataDatabaseFilePath);
return TSStorageManager.sharedDataDatabaseFilePath; return self.sharedDataDatabaseFilePath;
}
- (NSString *)databaseFilePath
{
return TSStorageManager.databaseFilePath;
} }
+ (YapDatabaseConnection *)dbReadConnection + (YapDatabaseConnection *)dbReadConnection
@ -230,15 +235,6 @@ NSString *const TSStorageManagerExceptionName_CouldNotCreateDatabaseDirectory
return TSStorageManager.sharedManager.dbReadWriteConnection; return TSStorageManager.sharedManager.dbReadWriteConnection;
} }
- (void)deleteDatabaseFile
{
NSError *error;
[[NSFileManager defaultManager] removeItemAtPath:[self dbPath] error:&error];
if (error) {
DDLogError(@"Failed to delete database: %@", error.description);
}
}
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

@ -23,6 +23,8 @@ NS_ASSUME_NONNULL_BEGIN
// Returns NO IFF the directory does not exist and could not be created. // Returns NO IFF the directory does not exist and could not be created.
+ (BOOL)ensureDirectoryExists:(NSString *)dirPath; + (BOOL)ensureDirectoryExists:(NSString *)dirPath;
+ (void)deleteFile:(NSString *)filePath;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

@ -115,6 +115,15 @@ NS_ASSUME_NONNULL_BEGIN
} }
} }
+ (void)deleteFile:(NSString *)filePath
{
NSError *error;
[[NSFileManager defaultManager] removeItemAtPath:filePath error:&error];
if (error) {
DDLogError(@"%@ Failed to delete file: %@", self.logTag, error.description);
}
}
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

Loading…
Cancel
Save