Skip to content

Commit

Permalink
Clean
Browse files Browse the repository at this point in the history
  • Loading branch information
nielsandriesse committed Apr 25, 2020
1 parent 655adb7 commit 8b50cca
Show file tree
Hide file tree
Showing 14 changed files with 44 additions and 27 deletions.
2 changes: 1 addition & 1 deletion Signal/src/Loki/View Controllers/DeviceLinksVC.swift
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ final class DeviceLinksVC : BaseVC, UITableViewDataSource, UITableViewDelegate,
LokiFileServerAPI.removeDeviceLink(deviceLink).done { [weak self] in
let linkedDeviceHexEncodedPublicKey = deviceLink.other.hexEncodedPublicKey
guard let thread = TSContactThread.fetch(uniqueId: TSContactThread.threadId(fromContactId: linkedDeviceHexEncodedPublicKey)) else { return }
let unlinkDeviceMessage = UnlinkDeviceMessage(thread: thread)!
let unlinkDeviceMessage = UnlinkDeviceMessage(thread: thread)
SSKEnvironment.shared.messageSender.send(unlinkDeviceMessage, success: {
let storage = OWSPrimaryStorage.shared()
storage.dbReadWriteConnection.readWrite { transaction in
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public final class ClosedGroupsProtocol : NSObject {
let hasSession = storage.containsSession(member, deviceId: 1, protocolContext: transaction) // TODO: Instead of 1 we should use the primary device ID thingy
if hasSession { continue }
let thread = TSContactThread.getOrCreateThread(withContactId: member, transaction: transaction)
let sessionRequestMessage = LKSessionRequestMessage(thread: thread)
let sessionRequestMessage = SessionRequestMessage(thread: thread)
let messageSenderJobQueue = SSKEnvironment.shared.messageSenderJobQueue
messageSenderJobQueue.add(message: sessionRequestMessage, transaction: transaction)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ - (SSKProtoContentBuilder *)prepareCustomContentBuilder:(SignalRecipient *)recip
SSKProtoContentBuilder *contentBuilder = SSKProtoContent.builder;
NSError *error;
if (self.kind == LKDeviceLinkMessageKindRequest) {
// Build the pre key bundle message
// The slave device attaches a pre key bundle with the request it sends, so that a
// session can be established with the master device.
PreKeyBundle *preKeyBundle = [OWSPrimaryStorage.sharedManager generatePreKeyBundleForContact:recipient.recipientId];
SSKProtoPrekeyBundleMessageBuilder *preKeyBundleMessageBuilder = [SSKProtoPrekeyBundleMessage builderFromPreKeyBundle:preKeyBundle];
SSKProtoPrekeyBundleMessage *preKeyBundleMessage = [preKeyBundleMessageBuilder buildAndReturnError:&error];
Expand All @@ -49,7 +50,9 @@ - (SSKProtoContentBuilder *)prepareCustomContentBuilder:(SignalRecipient *)recip
[contentBuilder setPrekeyBundleMessage:preKeyBundleMessage];
}
} else {
// Set display name & profile picture
// The master device attaches its display name and profile picture URL to the device link
// authorization message, so that the slave device is in sync with these things as soon
// as possible.
id<ProfileManagerProtocol> profileManager = SSKEnvironment.shared.profileManager;
NSString *displayName = profileManager.localProfileName;
NSString *profilePictureURL = profileManager.profilePictureURL;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

@implementation LKFriendRequestMessage

#pragma mark Initialization
#pragma mark Building
- (SSKProtoContentBuilder *)prepareCustomContentBuilder:(SignalRecipient *)recipient {
SSKProtoContentBuilder *contentBuilder = SSKProtoContent.builder;
PreKeyBundle *preKeyBundle = [OWSPrimaryStorage.sharedManager generatePreKeyBundleForContact:recipient.recipientId];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

NS_ASSUME_NONNULL_BEGIN

// TODO: This is just a friend request message with a flag set. Not sure if it needs to be its own type.

NS_SWIFT_NAME(SessionRequestMessage)
@interface LKSessionRequestMessage : LKFriendRequestMessage

- (instancetype)initWithThread:(TSThread *)thread;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ - (instancetype)initWithThread:(TSThread *)thread {
expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO groupMetaMessage:TSGroupMetaMessageUnspecified quotedMessage:nil contactShare:nil linkPreview:nil];
}

- (BOOL)shouldBeSaved { return NO; }
- (uint)ttl { return (uint)[LKTTLUtilities getTTLFor:LKMessageTypeSessionRequest]; }

#pragma mark Building
- (nullable SSKProtoDataMessageBuilder *)dataMessageBuilder
{
Expand All @@ -22,4 +19,8 @@ - (nullable SSKProtoDataMessageBuilder *)dataMessageBuilder
return builder;
}

#pragma mark Settings
- (BOOL)shouldBeSaved { return NO; }
- (uint)ttl { return (uint)[LKTTLUtilities getTTLFor:LKMessageTypeSessionRequest]; }

@end
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
#import "LKFriendRequestMessage.h"

NS_ASSUME_NONNULL_BEGIN

/// TODO: This is just a friend request message with a flag set. Not sure if it needs to be its own type.

NS_SWIFT_NAME(SessionRestoreMessage)
@interface LKSessionRestoreMessage : LKFriendRequestMessage

- (instancetype)initWithThread:(TSThread *)thread;

@end

NS_ASSUME_NONNULL_END
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,4 @@ - (nullable SSKProtoDataMessageBuilder *)dataMessageBuilder
return builder;
}


@end
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

NS_ASSUME_NONNULL_BEGIN

@class LKPublicChat;

NS_SWIFT_NAME(SyncOpenGroupsMessage)
@interface LKSyncOpenGroupsMessage : OWSOutgoingSyncMessage

- (instancetype)init NS_DESIGNATED_INITIALIZER;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,24 +19,24 @@ - (nullable instancetype)initWithCoder:(NSCoder *)coder
- (nullable SSKProtoSyncMessageBuilder *)syncMessageBuilder
{
NSError *error;
NSMutableArray<SSKProtoSyncMessageOpenGroups *> *openGroups = @[].mutableCopy;
__block NSDictionary<NSString *, LKPublicChat *> *publicChats;
NSMutableArray<SSKProtoSyncMessageOpenGroups *> *openGroupSyncMessages = @[].mutableCopy;
__block NSDictionary<NSString *, LKPublicChat *> *openGroups;
[OWSPrimaryStorage.sharedManager.dbReadConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
publicChats = [LKDatabaseUtilities getAllPublicChats:transaction];
openGroups = [LKDatabaseUtilities getAllPublicChats:transaction];
}];
for (LKPublicChat *openGroup in publicChats.allValues) {
SSKProtoSyncMessageOpenGroupsBuilder *openGroupMessageBuilder = [SSKProtoSyncMessageOpenGroups builder];
[openGroupMessageBuilder setUrl:openGroup.server];
[openGroupMessageBuilder setChannel:openGroup.channel];
SSKProtoSyncMessageOpenGroups *_Nullable openGroupMessageProto = [openGroupMessageBuilder buildAndReturnError:&error];
if (error || !openGroupMessageProto) {
OWSFailDebug(@"Couldn't build protobuf due to error: %@", error);
for (LKPublicChat *openGroup in openGroups.allValues) {
SSKProtoSyncMessageOpenGroupsBuilder *openGroupSyncMessageBuilder = [SSKProtoSyncMessageOpenGroups builder];
[openGroupSyncMessageBuilder setUrl:openGroup.server];
[openGroupSyncMessageBuilder setChannel:openGroup.channel];
SSKProtoSyncMessageOpenGroups *_Nullable openGroupSyncMessage = [openGroupSyncMessageBuilder buildAndReturnError:&error];
if (error || !openGroupSyncMessage) {
OWSFailDebug(@"Couldn't build protobuf due to error: %@.", error);
return nil;
}
[openGroups addObject:openGroupMessageProto];
[openGroupSyncMessages addObject:openGroupSyncMessage];
}
SSKProtoSyncMessageBuilder *syncMessageBuilder = [SSKProtoSyncMessage builder];
[syncMessageBuilder setOpenGroups:openGroups];
[syncMessageBuilder setOpenGroups:openGroupSyncMessages];
return syncMessageBuilder;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
#import "TSOutgoingMessage.h"

NS_ASSUME_NONNULL_BEGIN

/// TODO: This is just an ephemeral message with a flag set. Not sure if it needs to be its own type.

NS_SWIFT_NAME(UnlinkDeviceMessage)
@interface LKUnlinkDeviceMessage : TSOutgoingMessage

- (instancetype)initWithThread:(TSThread *)thread;

@end

NS_ASSUME_NONNULL_END
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public final class MultiDeviceProtocol : NSObject {
}
let isSilentMessage = message.isSilent || message is EphemeralMessage || message is OWSOutgoingSyncMessage
let isFriendRequestMessage = message is FriendRequestMessage
let isSessionRequestMessage = message is LKSessionRequestMessage
let isSessionRequestMessage = message is SessionRequestMessage
getMultiDeviceDestinations(for: recipientID, in: transaction).done(on: OWSDispatch.sendingQueue()) { destinations in
// Send to master destination
if let masterDestination = destinations.first(where: { $0.kind == .master }) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ public final class SessionManagementProtocol : NSObject {
@objc(isSessionRequiredForMessage:)
public static func isSessionRequired(for message: TSOutgoingMessage) -> Bool {
if message is FriendRequestMessage { return false }
else if message is LKSessionRequestMessage { return false }
else if message is SessionRequestMessage { return false }
else if let message = message as? DeviceLinkMessage, message.kind == .request { return false }
return true
}
Expand Down Expand Up @@ -106,7 +106,7 @@ public final class SessionManagementProtocol : NSObject {
@objc(getSessionResetMessageForHexEncodedPublicKey:in:)
public static func getSessionResetMessage(for hexEncodedPublicKey: String, in transaction: YapDatabaseReadWriteTransaction) -> SessionRestoreMessage {
let thread = TSContactThread.getOrCreateThread(withContactId: hexEncodedPublicKey, transaction: transaction)
let result = SessionRestoreMessage(thread: thread)!
let result = SessionRestoreMessage(thread: thread)
result.skipSave = true // TODO: Why is this necessary again?
return result
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public final class SyncMessagesProtocol : NSObject {
}

public static func syncAllOpenGroups() -> Promise<Void> {
let openGroupSyncMessage = LKSyncOpenGroupsMessage()
let openGroupSyncMessage = SyncOpenGroupsMessage()
let (promise, seal) = Promise<Void>.pending()
let messageSender = SSKEnvironment.shared.messageSender
messageSender.send(openGroupSyncMessage, success: {
Expand Down

0 comments on commit 8b50cca

Please sign in to comment.