@ -108,8 +108,8 @@ public final class FriendRequestProtocol : NSObject {
print ( " [Loki] Invalid Session ID: \( hexEncodedPublicKey ) . " )
return
}
let o urHexEncodedPublicKey = getUserHexEncodedPublicKey ( )
let o urDevices = LokiDatabaseUtilities . getLinkedDeviceHexEncodedPublicKeys ( for : o urHexEncodedPublicKey, in : transaction )
let use rHexEncodedPublicKey = getUserHexEncodedPublicKey ( )
let use rLinked Devices = LokiDatabaseUtilities . getLinkedDeviceHexEncodedPublicKeys ( for : use rHexEncodedPublicKey, in : transaction )
// A c c e p t a l l o u t s t a n d i n g f r i e n d r e q u e s t s a s s o c i a t e d w i t h t h i s u s e r a n d t r y t o e s t a b l i s h s e s s i o n s w i t h t h e
// s u b s e t o f t h e i r d e v i c e s t h a t h a v e n ' t s e n t a f r i e n d r e q u e s t .
let linkedDevices = LokiDatabaseUtilities . getLinkedDeviceHexEncodedPublicKeys ( for : hexEncodedPublicKey , in : transaction )
@ -119,13 +119,13 @@ public final class FriendRequestProtocol : NSObject {
storage . setFriendRequestStatus ( . friends , for : device , transaction : transaction )
sendFriendRequestAcceptanceMessage ( to : device , using : transaction )
// S e n d a c o n t a c t s y n c m e s s a g e i f n e e d e d
guard ! o urDevices. contains ( hexEncodedPublicKey ) else { return }
guard ! use rLinked Devices. contains ( hexEncodedPublicKey ) else { return }
let masterHexEncodedPublicKey = storage . getMasterHexEncodedPublicKey ( for : hexEncodedPublicKey , in : transaction ) ? ? hexEncodedPublicKey
let syncManager = SSKEnvironment . shared . syncManager
syncManager . syncContact ( masterHexEncodedPublicKey , transaction : transaction )
} else if friendRequestStatus = = . requestSent {
// W e s e n t a f r i e n d r e q u e s t t o t h i s d e v i c e b e f o r e , h o w c a n w e b e s u r e t h a t i t h a s n ' t e x p i r e d ?
} else if friendRequestStatus = = . none || friendRequestStatus = = . requestExpired && ! ourDevices . contains ( device ) {
} else if friendRequestStatus = = . none || friendRequestStatus = = . requestExpired {
// TODO: W e s h o u l d t r a c k t h e s e s o t h a t w e c a n e x p i r e t h e m a n d r e s e n d i f n e e d e d
MultiDeviceProtocol . getAutoGeneratedMultiDeviceFRMessageSend ( for : device , in : transaction )
. done ( on : OWSDispatch . sendingQueue ( ) ) { autoGeneratedFRMessageSend in
@ -169,10 +169,10 @@ public final class FriendRequestProtocol : NSObject {
@objc ( shouldUpdateFriendRequestStatusFromMessage : )
public static func shouldUpdateFriendRequestStatus ( from message : TSOutgoingMessage ) -> Bool {
let isFriendRequestMessage = message is FriendRequestMessage
let isSessionRequestMessage = message is SessionRequestMessage
let isDeviceLinkRequestMessage = message is DeviceLinkMessage && ( message as ! DeviceLinkMessage ) . kind = = . request
return ( isFriendRequestMessage && ! isSessionRequestMessage ) || isDeviceLinkRequestMessage ;
// T h e o r d e r o f t h e s e c h e c k s m a t t e r s
if ( message as ? DeviceLinkMessage ) ? . kind = = . request { return true }
if message is SessionRequestMessage { return false }
return message is FriendRequestMessage
}
@objc ( setFriendRequestStatusToSendingIfNeededForHexEncodedPublicKey : transaction : )