Merge pull request #131 from RyanRory/fix-syncing-for-multidevice

Fix syncing for multidevice
This commit is contained in:
gmbnt 2020-03-05 14:26:12 +11:00 committed by GitHub
commit 0820e6ee34
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 23 additions and 6 deletions

View File

@ -9,7 +9,7 @@
<key>DateTime</key>
<string>Tue Mar 3 05:11:41 UTC 2020</string>
<key>OSXVersion</key>
<string>10.15.3</string>
<string>10.15.2</string>
<key>WebRTCCommit</key>
<string>1445d719bf05280270e9f77576f80f973fd847f8 M73</string>
<key>XCodeVersion</key>

View File

@ -168,6 +168,9 @@ final class DeviceLinkingModal : Modal, DeviceLinkingSessionDelegate {
SSKEnvironment.shared.syncManager.syncAllContacts()
SSKEnvironment.shared.syncManager.syncAllGroups()
SSKEnvironment.shared.syncManager.syncAllOpenGroups()
let thread = TSContactThread.getOrCreateThread(contactId: deviceLink.slave.hexEncodedPublicKey)
thread.friendRequestStatus = .friends
thread.save()
}) { _ in
print("[Loki] Failed to send device link authorization message.")
}

View File

@ -172,6 +172,10 @@ NSString *envelopeAddress(SSKProtoEnvelope *envelope)
[description appendString:verifiedString];
} else if (syncMessage.contacts) {
[description appendString:@"Contacts"];
} else if (syncMessage.groups) {
[description appendString:@"ClosedGroups"];
} else if (syncMessage.openGroups) {
[description appendString:@"OpenGroups"];
} else {
[description appendString:@"Unknown"];
}

View File

@ -1089,8 +1089,19 @@ NS_ASSUME_NONNULL_BEGIN
case LKThreadFriendRequestStatusNone: {
OWSMessageSender *messageSender = SSKEnvironment.shared.messageSender;
LKFriendRequestMessage *automatedFriendRequestMessage = [messageSender getMultiDeviceFriendRequestMessageForHexEncodedPublicKey:hexEncodedPublicKey transaction:transaction];
[automatedFriendRequestMessage saveWithTransaction:transaction];
[self.messageSenderJobQueue addMessage:automatedFriendRequestMessage transaction:transaction];
thread.isForceHidden = true;
[thread saveWithTransaction:transaction];
[messageSender sendMessage:automatedFriendRequestMessage
success:^{
[automatedFriendRequestMessage remove];
thread.isForceHidden = false;
[thread save];
}
failure:^(NSError *error) {
[automatedFriendRequestMessage remove];
thread.isForceHidden = false;
[thread save];
}];
break;
}
case LKThreadFriendRequestStatusRequestReceived: {

View File

@ -988,9 +988,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
BOOL isGroupMessage = messageSend.thread.isGroupThread;
BOOL isPublicChatMessage = isGroupMessage && ((TSGroupThread *)messageSend.thread).isPublicChat;
BOOL isDeviceLinkMessage = [message isKindOfClass:LKDeviceLinkMessage.class];
BOOL isUnlinkDeviceMessage = [message isKindOfClass:LKUnlinkDeviceMessage.class];
// FIXME: Clean this up
if (isPublicChatMessage || isDeviceLinkMessage || isUnlinkDeviceMessage) {
if (isPublicChatMessage || isDeviceLinkMessage) {
[self sendMessage:messageSend];
} else {
BOOL isSilentMessage = message.isSilent || [message isKindOfClass:LKEphemeralMessage.class] || [message isKindOfClass:OWSOutgoingSyncMessage.class];

View File

@ -4348,6 +4348,7 @@ extension SignalServiceProtos_SyncMessage: SwiftProtobuf.Message, SwiftProtobuf.
7: .same(proto: "verified"),
9: .same(proto: "configuration"),
8: .same(proto: "padding"),
100: .same(proto: "openGroups"),
]
fileprivate class _StorageClass {