diff --git a/Signal/src/Loki/Settings/DeviceLinkingModal.swift b/Signal/src/Loki/Settings/DeviceLinkingModal.swift index 67d4546a6..244bd9ef9 100644 --- a/Signal/src/Loki/Settings/DeviceLinkingModal.swift +++ b/Signal/src/Loki/Settings/DeviceLinkingModal.swift @@ -38,7 +38,6 @@ final class DeviceLinkingModal : Modal, DeviceLinkingSessionDelegate { let result = UILabel() result.textColor = Theme.primaryColor result.font = UIFont.ows_dynamicTypeCaption1Clamped - result.text = "word word word" result.numberOfLines = 0 result.lineBreakMode = .byWordWrapping result.textAlignment = .center @@ -101,6 +100,10 @@ final class DeviceLinkingModal : Modal, DeviceLinkingSessionDelegate { } }() mnemonicLabel.isHidden = (mode == .master) + if mode == .slave { + let hexEncodedPublicKey = OWSIdentityManager.shared().identityKeyPair()!.hexEncodedPublicKey + mnemonicLabel.text = Mnemonic.encode(hexEncodedString: hexEncodedPublicKey).split(separator: " ")[0..<3].joined(separator: " ") + } let buttonHeight = cancelButton.button.titleLabel!.font.pointSize * 48 / 17 authorizeButton.set(.height, to: buttonHeight) cancelButton.set(.height, to: buttonHeight) @@ -114,13 +117,14 @@ final class DeviceLinkingModal : Modal, DeviceLinkingSessionDelegate { // MARK: Device Linking func requestUserAuthorization(for deviceLink: DeviceLink) { self.deviceLink = deviceLink - self.topSpacer.isHidden = true - self.spinner.stopAnimating() - self.spinner.isHidden = true - self.titleLabel.text = NSLocalizedString("Linking Request Received", comment: "") - self.subtitleLabel.text = NSLocalizedString("Please check that the words below match the words shown on the device being linked.", comment: "") - self.mnemonicLabel.isHidden = false - self.authorizeButton.isHidden = false + topSpacer.isHidden = true + spinner.stopAnimating() + spinner.isHidden = true + titleLabel.text = NSLocalizedString("Linking Request Received", comment: "") + subtitleLabel.text = NSLocalizedString("Please check that the words below match the words shown on the device being linked.", comment: "") + mnemonicLabel.text = Mnemonic.encode(hexEncodedString: deviceLink.slave.hexEncodedPublicKey).split(separator: " ")[0..<3].joined(separator: " ") + mnemonicLabel.isHidden = false + authorizeButton.isHidden = false } @objc private func authorizeDeviceLink() { diff --git a/SignalServiceKit/src/Loki/Messaging/LKDeviceLinkMessage.h b/SignalServiceKit/src/Loki/Messaging/LKDeviceLinkMessage.h index f4ac1614d..ff3218935 100644 --- a/SignalServiceKit/src/Loki/Messaging/LKDeviceLinkMessage.h +++ b/SignalServiceKit/src/Loki/Messaging/LKDeviceLinkMessage.h @@ -8,6 +8,7 @@ NS_SWIFT_NAME(DeviceLinkMessage) @property (nonatomic, readonly) NSData *masterSignature; // nil for device linking requests @property (nonatomic, readonly) NSData *slaveSignature; -- (instancetype)initInThread:(TSThread *)thread masterHexEncodedPublicKey:(NSString *)masterHexEncodedPublicKey slaveHexEncodedPublicKey:(NSString *)slaveHexEncodedPublicKey masterSignature:(NSData *)masterSignature slaveSignature:(NSData *)slaveSignature; +- (instancetype)initInThread:(TSThread *)thread masterHexEncodedPublicKey:(NSString *)masterHexEncodedPublicKey slaveHexEncodedPublicKey:(NSString *)slaveHexEncodedPublicKey + masterSignature:(NSData *)masterSignature slaveSignature:(NSData *)slaveSignature; @end diff --git a/SignalServiceKit/src/Loki/Messaging/LKDeviceLinkMessage.m b/SignalServiceKit/src/Loki/Messaging/LKDeviceLinkMessage.m index 32cab586d..b217e33b0 100644 --- a/SignalServiceKit/src/Loki/Messaging/LKDeviceLinkMessage.m +++ b/SignalServiceKit/src/Loki/Messaging/LKDeviceLinkMessage.m @@ -7,7 +7,8 @@ @implementation LKDeviceLinkMessage -- (instancetype)initInThread:(TSThread *)thread masterHexEncodedPublicKey:(NSString *)masterHexEncodedPublicKey slaveHexEncodedPublicKey:(NSString *)slaveHexEncodedPublicKey masterSignature:(NSData *)masterSignature slaveSignature:(NSData *)slaveSignature { +- (instancetype)initInThread:(TSThread *)thread masterHexEncodedPublicKey:(NSString *)masterHexEncodedPublicKey slaveHexEncodedPublicKey:(NSString *)slaveHexEncodedPublicKey + masterSignature:(NSData *)masterSignature slaveSignature:(NSData *)slaveSignature { self = [self initOutgoingMessageWithTimestamp:NSDate.ows_millisecondTimeStamp inThread:thread messageBody:@"" attachmentIds:[NSMutableArray new] expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO groupMetaMessage:TSGroupMetaMessageUnspecified quotedMessage:nil contactShare:nil linkPreview:nil]; if (self) { @@ -28,7 +29,7 @@ NSError *error; SSKProtoLokiDeviceLinkMessage *deviceLinkMessage = [deviceLinkMessageBuilder buildAndReturnError:&error]; if (error || deviceLinkMessage == nil) { - OWSFailDebug(@"Failed to build device linking message for: %@ due to error: %@", self.masterHexEncodedPublicKey, error); + OWSFailDebug(@"Failed to build device link message due to error: %@", error); } SSKProtoContentBuilder *contentBuilder = [super contentBuilder:recipient]; [contentBuilder setLokiDeviceLinkMessage:deviceLinkMessage];