Merge branch 'charlesmchen/storageReset'

This commit is contained in:
Matthew Chen 2018-01-08 10:52:14 -05:00
commit b8c6d29170
1 changed files with 13 additions and 4 deletions

View File

@ -1,5 +1,5 @@
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "OWSStorage.h"
@ -23,6 +23,7 @@ NSString *const OWSStorageExceptionName_DatabasePasswordInaccessibleWhileBackgro
NSString *const OWSStorageExceptionName_DatabasePasswordUnwritable
= @"OWSStorageExceptionName_DatabasePasswordUnwritable";
NSString *const OWSStorageExceptionName_NoDatabase = @"OWSStorageExceptionName_NoDatabase";
NSString *const OWSResetStorageNotification = @"OWSResetStorageNotification";
static NSString *keychainService = @"TSKeyChainService";
static NSString *keychainDBPassAccount = @"TSDatabasePass";
@ -270,11 +271,21 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
[NSException raise:OWSStorageExceptionName_NoDatabase format:@"Failed to initialize database."];
}
}
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(resetStorage)
name:OWSResetStorageNotification
object:nil];
}
return self;
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (BOOL)areAsyncRegistrationsComplete
{
OWS_ABSTRACT_METHOD();
@ -450,9 +461,7 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
+ (void)resetAllStorage
{
for (OWSStorage *storage in self.allStorages) {
[storage resetStorage];
}
[[NSNotificationCenter defaultCenter] postNotificationName:OWSResetStorageNotification object:nil];
// This might be redundant but in the spirit of thoroughness...
[self deleteDatabaseFiles];