diff --git a/Signal/src/Profiles/OWSProfileManager.h b/Signal/src/Profiles/OWSProfileManager.h index 2d2530a2a..64fa738a3 100644 --- a/Signal/src/Profiles/OWSProfileManager.h +++ b/Signal/src/Profiles/OWSProfileManager.h @@ -18,6 +18,8 @@ extern NSString *const kNSNotificationName_OtherUsersProfileDidChange; + (instancetype)sharedManager; +- (void)resetSignalStorage; + #pragma mark - Local Profile // These two methods should only be called from the main thread. diff --git a/Signal/src/Profiles/OWSProfileManager.m b/Signal/src/Profiles/OWSProfileManager.m index 17f9972e5..73ae102fc 100644 --- a/Signal/src/Profiles/OWSProfileManager.m +++ b/Signal/src/Profiles/OWSProfileManager.m @@ -830,6 +830,17 @@ static const NSInteger kProfileKeyLength = 16; // TODO: We may want to clean up this directory in the "orphan cleanup" logic. +- (void)resetSignalStorage +{ + OWSAssert([NSThread isMainThread]); + + NSError *error; + [[NSFileManager defaultManager] removeItemAtPath:[self profileAvatarsDirPath] error:&error]; + if (error) { + DDLogError(@"Failed to delete database: %@", error.description); + } +} + #pragma mark - Notifications - (void)applicationDidBecomeActive:(NSNotification *)notification diff --git a/Signal/src/environment/Environment.m b/Signal/src/environment/Environment.m index a053910e9..580a6d8e4 100644 --- a/Signal/src/environment/Environment.m +++ b/Signal/src/environment/Environment.m @@ -241,6 +241,7 @@ static Environment *environment = nil; [DDLog flushLog]; [[TSStorageManager sharedManager] resetSignalStorage]; + [[OWSProfileManager sharedManager] resetSignalStorage]; [Environment.preferences clear]; [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];