From 5b2428c8a52075612d44b0eed9298dbc6a06956a Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Wed, 7 Jun 2017 11:50:15 -0400 Subject: [PATCH] debug toggle verification state // FREEBIE --- .../DebugUI/DebugUISessionState.m | 78 ++++++++++++++++++- 1 file changed, 75 insertions(+), 3 deletions(-) diff --git a/Signal/src/ViewControllers/DebugUI/DebugUISessionState.m b/Signal/src/ViewControllers/DebugUI/DebugUISessionState.m index ba9b9c685..e39e34343 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUISessionState.m +++ b/Signal/src/ViewControllers/DebugUI/DebugUISessionState.m @@ -28,7 +28,7 @@ NS_ASSUME_NONNULL_BEGIN [[TSStorageManager sharedManager] printAllSessions]; }); }], - [OWSTableItem itemWithTitle:@"Toggle Key Change (Contact Thread Only)" + [OWSTableItem itemWithTitle:@"Toggle Key Change" actionBlock:^{ DDLogError(@"Flipping identity Key. Flip again to return."); @@ -45,14 +45,74 @@ NS_ASSUME_NONNULL_BEGIN OWSAssert(flippedKey.length == currentKey.length); [identityManager saveRemoteIdentity:flippedKey recipientId:recipientId]; }], - [OWSTableItem itemWithTitle:@"Delete session (Contact Thread Only)" + [OWSTableItem + itemWithTitle:@"Set Verification State" + actionBlock:^{ + DDLogError(@"%@ Choosing verification state.", self.tag); + + NSString *title = [NSString + stringWithFormat:@"Choose verification state for %@", contactThread.name]; + UIAlertController *alertController = + [UIAlertController alertControllerWithTitle:title + message:nil + preferredStyle:UIAlertControllerStyleActionSheet]; + + NSString *recipientId = [contactThread contactIdentifier]; + OWSIdentityManager *identityManger = [OWSIdentityManager sharedManager]; + + [alertController + addAction:[UIAlertAction + actionWithTitle:@"Default" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *_Nonnull action) { + NSData *identityKey = [identityManger + identityKeyForRecipientId:recipientId]; + [[OWSIdentityManager sharedManager] + setVerificationState:OWSVerificationStateDefault + identityKey:identityKey + recipientId:recipientId + sendSyncMessage:NO]; + }]]; + [alertController + addAction:[UIAlertAction + actionWithTitle:@"Verified" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *_Nonnull action) { + NSData *identityKey = [identityManger + identityKeyForRecipientId:recipientId]; + [[OWSIdentityManager sharedManager] + setVerificationState:OWSVerificationStateVerified + identityKey:identityKey + recipientId:recipientId + sendSyncMessage:NO]; + }]]; + [alertController + addAction:[UIAlertAction actionWithTitle:@"No Longer Verified" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *_Nonnull action) { + NSData *identityKey = [identityManger + identityKeyForRecipientId:recipientId]; + [[OWSIdentityManager sharedManager] + setVerificationState: + OWSVerificationStateNoLongerVerified + identityKey:identityKey + recipientId:recipientId + sendSyncMessage:NO]; + }]]; + + [[UIApplication sharedApplication].frontmostViewController + presentViewController:alertController + animated:YES + completion:nil]; + }], + [OWSTableItem itemWithTitle:@"Delete session" actionBlock:^{ dispatch_async([OWSDispatch sessionStoreQueue], ^{ [[TSStorageManager sharedManager] deleteAllSessionsForContact:contactThread.contactIdentifier]; }); }], - [OWSTableItem itemWithTitle:@"Send session reset (Contact Thread Only)" + [OWSTableItem itemWithTitle:@"Send session reset" actionBlock:^{ [OWSSessionResetJob runWithContactThread:contactThread @@ -62,6 +122,18 @@ NS_ASSUME_NONNULL_BEGIN ]]; } +#pragma mark - Logging + ++ (NSString *)tag +{ + return [NSString stringWithFormat:@"[%@]", self.class]; +} + +- (NSString *)tag +{ + return self.class.tag; +} + @end NS_ASSUME_NONNULL_END