From 903d792af41c16d8c59a639b9bd712cba4898c14 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Thu, 24 Aug 2017 11:27:36 -0400 Subject: [PATCH] Debug action to clobber local profile and key // FREEBIE --- Signal/src/Profiles/OWSProfileManager.h | 1 + Signal/src/Profiles/OWSProfileManager.m | 15 +++++++++++++++ Signal/src/ViewControllers/DebugUI/DebugUIMisc.m | 4 ++++ 3 files changed, 20 insertions(+) diff --git a/Signal/src/Profiles/OWSProfileManager.h b/Signal/src/Profiles/OWSProfileManager.h index 9574d36da..9183fba27 100644 --- a/Signal/src/Profiles/OWSProfileManager.h +++ b/Signal/src/Profiles/OWSProfileManager.h @@ -50,6 +50,7 @@ extern const NSUInteger kOWSProfileManager_MaxAvatarDiameter; // These methods are for debugging. - (void)clearProfileWhitelist; - (void)logProfileWhitelist; +- (void)regenerateLocalProfile; #endif - (void)addThreadToProfileWhitelist:(TSThread *)thread; diff --git a/Signal/src/Profiles/OWSProfileManager.m b/Signal/src/Profiles/OWSProfileManager.m index 730293eaa..7f9dddb9b 100644 --- a/Signal/src/Profiles/OWSProfileManager.m +++ b/Signal/src/Profiles/OWSProfileManager.m @@ -663,6 +663,21 @@ const NSUInteger kOWSProfileManager_MaxAvatarDiameter = 640; } }); } + +- (void)regenerateLocalProfile +{ + @synchronized(self) + { + _localUserProfile = nil; + DDLogWarn(@"%@ Removing local user profile", self.tag); + [self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) { + [transaction removeObjectForKey:kLocalProfileUniqueId inCollection:[UserProfile collection]]; + }]; + + // rebuild localUserProfile + OWSAssert(self.localUserProfile); + } +} #endif - (void)addUserToProfileWhitelist:(NSString *)recipientId diff --git a/Signal/src/ViewControllers/DebugUI/DebugUIMisc.m b/Signal/src/ViewControllers/DebugUI/DebugUIMisc.m index 35fe1e082..bffd48f61 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUIMisc.m +++ b/Signal/src/ViewControllers/DebugUI/DebugUIMisc.m @@ -62,6 +62,10 @@ NS_ASSUME_NONNULL_BEGIN actionBlock:^{ [OWSProfileManager.sharedManager logProfileWhitelist]; }]]; + [items addObject:[OWSTableItem itemWithTitle:@"Regenerate Profile/ProfileKey" + actionBlock:^{ + [[OWSProfileManager sharedManager] regenerateLocalProfile]; + }]]; #endif [items addObject:[OWSTableItem itemWithTitle:@"Clear hasDismissedOffers" actionBlock:^{